Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#1010 closed bug (fixed)

Screen Preferences: screen flickers a lot when "keeping" changes made to "All workspaces"

Reported by: jonas.kirilla Owned by: axeld
Priority: normal Milestone: R1
Component: Servers/app_server Version: R1/pre-alpha1
Keywords: Cc: wkornewald
Blocked By: Blocking:
Platform: All

Description

When "keeping" changes applied to "All Workspaces", the screen flickers needlessly. If the workspace count is 9, it flickers 8 times.

Change History (3)

comment:1 by wkornewald, 17 years ago

Cc: wkornewald added
Component: - Preferences/ScreenServers/app_server

I had a quick shot and it looks like an app_server bug. In ServerApp.cpp the code for AS_SCREEN_SET_MODE doesn't use the workspace argument, at all. I think that with each call to BScreen::SetMode() the resolution is changed for all workspaces instead of only the given one.

The preflet could set the screen mode for all workspaces with one single call (instead of iterating over all workspaces), but then the app_server would have to make sure that the current workspace is only updated if the mode changed. Otherwise, only the other workspaces should be updated.

I also noticed that BScreen::SetMode(mode, makeDefault) sets the mode for all workspaces. In R5 it seems to change the mode for the active workspace, only. The Screen preflet assumes R5 behavior, BTW. I'll fix that one if nobody objects.

comment:2 by axeld, 17 years ago

Resolution: fixed
Status: newclosed

While BeOS shows the same annoying behaviour, and this one actually depends on bug #693 (right now, as Waldemar also noticed, the workspace argument is ignored), I've changed the app_server to only apply a new screen mode if it isn't already the active one. And that accidently also fixes this bug (but not the real one) in hrev20049.

Waldemar: if you want to fix bug #693, go ahead, but I'm not sure if ignoring AS_SCREEN_SET_MODE for other workspaces is the way to go if that was your intention.

in reply to:  2 comment:3 by wkornewald, 17 years ago

Replying to axeld:

Waldemar: if you want to fix bug #693, go ahead, but I'm not sure if ignoring AS_SCREEN_SET_MODE for other workspaces is the way to go if that was your intention.

It doesn't look easy and I don't want to get back into coding too much. Sorry. I'd rather fix small bugs and usability issues.

Note: See TracTickets for help on using tickets.