From: manio <ma...@sk...> - 2009-07-31 08:03:50
Attachments:
win_state.diff
|
Hi As you may know i have two-monitor config. The problem is when restarting e (with existing windows). On initial desk all is ok - i mean the windows which were minimized are minimized after restart and which was on screen, stays on screen. But on the other screen i always needed to minimize windows after restart - because e still shows me on desktop windows which was hidden in shelf before. So - here is what i find out during debug: The state of window is reverted in e_hints_window_init (called from e_border_eval). Inside is check for: (bd->client.iccm.state==ECORE_X_WINDOW_HINT_ICONIC && bd->client.netwm.state.hidden) depends on result the window is iconified or leave on screen The problem was - that minimized windows (in my case all on not initial screen) always has set state to ECORE_X_WINDOW_STATE_HINT_NORMAL instead of ECORE_X_WINDOW_STATE_HINT_ICONIC. After some digging i found out the place where the state is wrongly assigned: e_manager_manage_windows is called before - and inside (in /* we have seen this window before */) is a call: if (desk) e_border_desk_set(bd,desk) Following - in e_border_desk_set is (depend on desk->visible or bd->sticky) a call for e_border_show() And in e_border_show the iccm.state is wrongly assigned in line: e_hints_window_visible_set(bd) - this call causes to change the iccm.state to ECORE_X_WINDOW_STATE_HINT_NORMAL bingo :) I removed from e_border_desk_set the piece of code with e_border_show and e_border_hide because: 1. it cause the described problem 2. the e_border_show and e_border_hide are called a moment later in e_hints_window_init() iteration Please review :) regards, -- manio jabber/e-mail: ma...@sk... http://manio.skyboo.net |
From: manio <ma...@sk...> - 2009-07-31 08:14:25
|
manio wrote: > I removed from e_border_desk_set the piece of code with e_border_show > and e_border_hide because: > 1. it cause the described problem > 2. the e_border_show and e_border_hide are called a moment later in > e_hints_window_init() iteration 3. "pin to desktop" is broken so this is not a solution :( someone have better? regards, -- manio jabber/e-mail: ma...@sk... http://manio.skyboo.net |
From: manio <ma...@sk...> - 2009-07-31 17:11:49
Attachments:
win_state2.diff
|
manio wrote: > 3. "pin to desktop" is broken sorry - i meant "Send to desktop" btw > so this is not a solution :( > someone have better? well - i think i finally have it :) i relied on ignore_first_unmap variable - which is 1 when e is restarting (btw this variable is set just before e_border_desk_set call) i tested it with many windows on many desks and screens, i also was sending window to different desks - all seems ok and working fine (after restarting e and during normal work with windows) i hope that now the patch is ok for commit :) regards, -- manio jabber/e-mail: ma...@sk... http://manio.skyboo.net |
From: manio <ma...@sk...> - 2010-03-02 19:15:22
|
manio wrote: > Hello > I am only refreshing the topic with information how to reproduce the bug > using xephyr: > 1. # Xephyr :3.0 -ac -br +xinerama -screen 1200x400 > 2. # enlightenment -fake-xinerama-screen 600x400+0+0 > -fake-xinerama-screen 600x400+600+0 > 3. make sure that IBox is on both screens (i'm not sure if this step is > necessary) > 3. put a window (i use a Eterm) on both screens > 4. minimalize these windows > 5. menu -> enlightenment -> restart > > ... and you'll see what is wrong (more digging info in my previous > e-mails in this thread) > > Of course you can pass other screen sizes to fit your needs. > > regards, > bump |
From: Carsten H. (T. R. <ra...@ra...> - 2010-03-03 00:50:52
|
On Tue, 02 Mar 2010 20:53:28 +0100 manio <ma...@sk...> said: > manio wrote: > > Hello > > I am only refreshing the topic with information how to reproduce the bug > > using xephyr: > > 1. # Xephyr :3.0 -ac -br +xinerama -screen 1200x400 > > 2. # enlightenment -fake-xinerama-screen 600x400+0+0 > > -fake-xinerama-screen 600x400+600+0 > > 3. make sure that IBox is on both screens (i'm not sure if this step is > > necessary) > > 3. put a window (i use a Eterm) on both screens > > 4. minimalize these windows > > 5. menu -> enlightenment -> restart > > > > ... and you'll see what is wrong (more digging info in my previous > > e-mails in this thread) > > > > Of course you can pass other screen sizes to fit your needs. > > > > regards, > > > bump gah! old! forgotten patch! .. in! :) -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ra...@ra... |
From: manio <ma...@sk...> - 2009-10-13 14:31:37
|
Hello I am only refreshing the topic with information how to reproduce the bug using xephyr: 1. # Xephyr :3.0 -ac -br +xinerama -screen 1200x400 2. # enlightenment -fake-xinerama-screen 600x400+0+0 -fake-xinerama-screen 600x400+600+0 3. make sure that IBox is on both screens (i'm not sure if this step is necessary) 3. put a window (i use a Eterm) on both screens 4. minimalize these windows 5. menu -> enlightenment -> restart ... and you'll see what is wrong (more digging info in my previous e-mails in this thread) Of course you can pass other screen sizes to fit your needs. regards, -- manio jabber/e-mail: ma...@sk... http://manio.skyboo.net |