From: Daniel Caujolle-B. <f1...@us...> - 2001-10-07 22:17:36
|
Update of /cvsroot/xine/xine-ui/src/xitk In directory usw-pr-cvs1:/tmp/cvs-serv28671/src/xitk Modified Files: actions.c event.h file_browser.c mrl_browser.c panel.c Log Message: Re-add (as most clean way), temporary i hope, E workaround. Index: actions.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/actions.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- actions.c 2001/10/05 20:04:15 1.29 +++ actions.c 2001/10/07 22:17:33 1.30 @@ -164,7 +164,12 @@ if(panel_is_visible()) { video_window_set_visibility(!(video_window_is_visible())); - XMapRaised (gGui->display, gGui->panel_window); + XMapRaised (gGui->display, gGui->panel_window); + + if(gGui->reparent_hack) { + panel_toggle_visibility(NULL, NULL); + panel_toggle_visibility(NULL, NULL); + } } } @@ -186,6 +191,11 @@ gGui->panel_window, gGui->video_window); } + if(gGui->reparent_hack) { + panel_toggle_visibility(NULL, NULL); + panel_toggle_visibility(NULL, NULL); + } + if(mrl_browser_is_visible()) { show_mrl_browser(); set_mrl_browser_transient(); Index: event.h =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/event.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- event.h 2001/10/05 19:57:11 1.18 +++ event.h 2001/10/07 22:17:33 1.19 @@ -103,6 +103,7 @@ widgetkey_t widget_key; int layer_above; + int reparent_hack; } gGui_t; Index: file_browser.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/file_browser.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- file_browser.c 2001/10/05 19:57:11 1.8 +++ file_browser.c 2001/10/07 22:17:33 1.9 @@ -85,6 +85,7 @@ if(fb) { filebrowser_show(fb); set_file_browser_transient(); + layer_above_video((filebrowser_get_window_id(fb))); } } Index: mrl_browser.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/mrl_browser.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- mrl_browser.c 2001/10/05 19:57:11 1.7 +++ mrl_browser.c 2001/10/07 22:17:33 1.8 @@ -84,6 +84,7 @@ if(mrlb) { mrlbrowser_show(mrlb); set_mrl_browser_transient(); + layer_above_video((mrlbrowser_get_window_id(mrlb))); } } Index: panel.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/panel.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- panel.c 2001/10/06 18:04:17 1.41 +++ panel.c 2001/10/07 22:17:33 1.42 @@ -49,6 +49,29 @@ _panel_t *panel; /* + * Try to guess if current WM is E. + */ +static int is_wm_is_enlightenment(Display *display, Window window) { + Atom *atoms; + int i, natoms; + + XLockDisplay (gGui->display); + atoms = XListProperties(display, window, &natoms); + + if(natoms) { + for(i = 0; i < natoms; i++) { + if(!strncasecmp("_E_FRAME_SIZE", (XGetAtomName(display, atoms[i])), 13)) { + XUnlockDisplay (gGui->display); + return 1; + } + } + } + + XUnlockDisplay (gGui->display); + return 0; +} + +/* * Toolkit event handler will call this function with new * coords of panel window. */ @@ -815,6 +838,7 @@ XUnlockDisplay (gGui->display); + gGui->reparent_hack = is_wm_is_enlightenment(gGui->display, gGui->panel_window); { pthread_attr_t pth_attrs; |