]> git.decadent.org.uk Git - ion3.git/commitdiff
Removed reversion of 'Full screen mode fixes and improvements'. 20070318-2
authorBen Hutchings <ben@decadent.org.uk>
Sun, 25 Mar 2007 22:24:58 +0000 (22:24 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 2 Nov 2008 12:35:23 +0000 (12:35 +0000)
Applied correct fix 'Oops, return in wrong place in fs rq check was breaking other cfgrqs'.

debian/changelog
debian/patches/00list
debian/patches/101_revert-full-screen-changes.diff [deleted file]
debian/patches/102_config-request-fix.diff [new file with mode: 0644]

index 4f8feeb34d6748c85f3236695b48ff2566a94013..b01bfa8016e6ac61482e3df2d8f5774754f9b8c5 100644 (file)
@@ -1,3 +1,9 @@
+ion3 (20070318-2) unstable; urgency=low
+
+  * Applied upstream fix for configuration requests including dock sizing
+
+ -- Ben Hutchings <ben@decadent.org.uk>  Sun, 25 Mar 2007 23:17:04 +0100
+
 ion3 (20070318-1) unstable; urgency=low
 
   * New maintainer - closes: #414378
index bc489030fabff79db0400477c43b8a3cde8d456a..7258da1f0f03968863e1f85c2d2fea71a0b102c3 100644 (file)
@@ -1,4 +1,4 @@
-101_revert-full-screen-changes.diff
+102_config-request-fix.diff
 201_fix-paths.diff
 202_fix-menus.diff
 204_fix-bindings.diff
diff --git a/debian/patches/101_revert-full-screen-changes.diff b/debian/patches/101_revert-full-screen-changes.diff
deleted file mode 100644 (file)
index 12f827b..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-#! /bin/sh -e
-if [ $# -ne 1 ]; then
-    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-    exit 1
-fi
-case "$1" in
-    -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
-    -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
-    *)
-        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-        exit 1;;
-esac
-
-exit 0
-@DPATCH@                                                                                                                                                       
-reverted:
---- new-ion3-darcs/ioncore/clientwin.c 2007-03-25 20:10:54.000000000 +0100
-+++ old-ion3-darcs/ioncore/clientwin.c 2007-03-25 20:10:54.000000000 +0100
-@@ -43,7 +43,6 @@
- #include "bindmaps.h"
- #include "return.h"
- #include "conf.h"
--#include "group.h"
- static void set_clientwin_state(WClientWin *cwin, int state);
-@@ -1071,31 +1070,26 @@
- /*{{{ ConfigureRequest */
-+void clientwin_handle_configure_request(WClientWin *cwin,
-+                                        XConfigureRequestEvent *ev)
--static bool check_fs_cfgrq(WClientWin *cwin, XConfigureRequestEvent *ev)
- {
-+    if(ev->value_mask&CWBorderWidth)
-+        cwin->orig_bw=ev->border_width;
-+    
-+    if(cwin->flags&CLIENTWIN_PROP_IGNORE_CFGRQ){
-+        sendconfig_clientwin(cwin);
-+        return;
-+    }
-+
-     /* check full screen request */
-     if((ev->value_mask&(CWWidth|CWHeight))==(CWWidth|CWHeight)){
-+        bool sw=clientwin_fullscreen_may_switchto(cwin);
-+        if(clientwin_check_fullscreen_request(cwin, ev->width, ev->height, sw))
-+            return;
--        WRegion *grp=region_groupleader_of((WRegion*)cwin);
--        WScreen *scr=clientwin_fullscreen_chkrq(cwin, ev->width, ev->height);
--        
--        if(scr!=NULL && REGION_MANAGER(grp)!=(WRegion*)scr){
--            bool sw=clientwin_fullscreen_may_switchto(cwin);
--            
--            cwin->flags|=CLIENTWIN_FS_RQ;
--            
--            if(!region_fullscreen_scr(grp, scr, sw))
--                cwin->flags&=~CLIENTWIN_FS_RQ;
--        }
--        
--        return TRUE;
-     }
-+    cwin->flags|=CLIENTWIN_NEED_CFGNTFY;
--    return FALSE;
--}
--
--static bool check_normal_cfgrq(WClientWin *cwin, XConfigureRequestEvent *ev)
--{
-     if(ev->value_mask&(CWX|CWY|CWWidth|CWHeight)){
-         WRQGeomParams rq=RQGEOMPARAMS_INIT;
-         int gdx=0, gdy=0;
-@@ -1150,25 +1144,6 @@
-         }
-         
-         region_rqgeom((WRegion*)cwin, &rq, NULL);
--        
--        return TRUE;
--    }
--    
--    return FALSE;
--}
--
--
--void clientwin_handle_configure_request(WClientWin *cwin,
--                                        XConfigureRequestEvent *ev)
--{
--    if(ev->value_mask&CWBorderWidth)
--        cwin->orig_bw=ev->border_width;
--    
--    cwin->flags|=CLIENTWIN_NEED_CFGNTFY;
--
--    if(!(cwin->flags&CLIENTWIN_PROP_IGNORE_CFGRQ)){
--        if(!check_fs_cfgrq(cwin, ev))
--            check_normal_cfgrq(cwin, ev);
-     }
-     if(cwin->flags&CLIENTWIN_NEED_CFGNTFY){
-reverted:
---- new-ion3-darcs/ioncore/fullscreen.c        2007-03-25 20:10:54.000000000 +0100
-+++ old-ion3-darcs/ioncore/fullscreen.c        2007-03-25 20:10:54.000000000 +0100
-@@ -20,7 +20,7 @@
- #include "fullscreen.h"
- #include "mwmhints.h"
- #include "focus.h"
-+#include "group-cw.h"
--#include "group.h"
- #include "return.h"
-@@ -125,7 +125,8 @@
- }
-+bool clientwin_check_fullscreen_request(WClientWin *cwin, int w, int h,
-+                                        bool sw)
--WScreen *clientwin_fullscreen_chkrq(WClientWin *cwin, int w, int h)
- {
-     WScreen *scr;
-     WMwmHints *mwm;
-@@ -134,7 +135,7 @@
-     mwm=xwindow_get_mwmhints(cwin->win);
-     if(mwm==NULL || !(mwm->flags&MWM_HINTS_DECORATIONS) ||
-        mwm->decorations!=0)
-+        return FALSE;
--        return NULL;
-     
-     FOR_ALL_SCREENS(scr){
-         if(!region_same_rootwin((WRegion*)scr, (WRegion*)cwin))
-@@ -143,11 +144,17 @@
-          * and doesn't set position, so we also don't check position here, 
-          * and instead take the first screen with matching size.
-          */
-+        if(REGION_GEOM(scr).w==w && REGION_GEOM(scr).h==h){
-+            cwin->flags|=CLIENTWIN_FS_RQ;
-+            if(!region_fullscreen_scr((WRegion*)cwin, (WScreen*)scr, sw)){
-+                cwin->flags&=~CLIENTWIN_FS_RQ;
-+                return FALSE;
-+            }
-+            return TRUE;
-+        }
--        if(REGION_GEOM(scr).w==w && REGION_GEOM(scr).h==h)
--            return scr;
-     }
-     
-+    return FALSE;
--    return NULL;
- }
-reverted:
---- new-ion3-darcs/ioncore/fullscreen.h        2007-03-25 20:10:54.000000000 +0100
-+++ old-ion3-darcs/ioncore/fullscreen.h        2007-03-25 20:10:54.000000000 +0100
-@@ -19,7 +19,8 @@
- #define REGION_IS_FULLSCREEN(REG) OBJ_IS(REGION_PARENT(REG), WScreen)
-+extern bool clientwin_check_fullscreen_request(WClientWin *cwin, 
-+                                               int w, int h, bool switchto);
--extern WScreen *clientwin_fullscreen_chkrq(WClientWin *cwin, int w, int h);
- extern bool clientwin_fullscreen_may_switchto(WClientWin *cwin);
- extern bool region_fullscreen_scr(WRegion *reg, WScreen *vp, bool switchto);
-reverted:
---- new-ion3-darcs/ioncore/manage.c    2007-03-25 20:10:54.000000000 +0100
-+++ old-ion3-darcs/ioncore/manage.c    2007-03-25 20:10:54.000000000 +0100
-@@ -136,56 +136,15 @@
- }
--static bool try_fullscreen(WClientWin *cwin, WScreen *dflt, 
--                           const WManageParams *param)
--{
--    WScreen *fs_scr=NULL;
--    bool fs=FALSE, tmp;
--    
--    /* Check fullscreen mode. (This is intentionally not done
--     * for transients and windows with target winprops.)
--     */
--    if(extl_table_gets_b(cwin->proptab, "fullscreen", &tmp)){
--        if(!tmp)
--            return FALSE;
--        fs_scr=dflt;
--    }
--
--    if(fs_scr==NULL)
--        fs_scr=netwm_check_initial_fullscreen(cwin);
--
--    if(fs_scr==NULL)
--        fs_scr=clientwin_fullscreen_chkrq(cwin, param->geom.w, param->geom.h);
--    
--    if(fs_scr!=NULL){
--        WPHolder *fs_ph=region_prepare_manage((WRegion*)fs_scr, cwin, param,
--                                              MANAGE_REDIR_STRICT_NO);
--        
--        if(fs_ph!=NULL){
--            int swf=(param->switchto ? PHOLDER_ATTACH_SWITCHTO : 0);
--            
--            cwin->flags|=CLIENTWIN_FS_RQ;
--            
--            fs=pholder_attach(fs_ph, swf, (WRegion*)cwin);
--            
--            if(!fs)
--                cwin->flags&=~CLIENTWIN_FS_RQ;
--                
--            destroy_obj((Obj*)fs_ph);
--        }
--    }
--
--    return fs;
--}
--
--
- bool clientwin_do_manage_default(WClientWin *cwin, 
-                                  const WManageParams *param)
- {
-+    WRegion *r=NULL, *r2;
-     WScreen *scr=NULL;
-     WPHolder *ph=NULL;
-+    int fs=-1;
-+    int swf;
-+    bool ok, tmp, uq=FALSE;
--    int swf=(param->switchto ? PHOLDER_ATTACH_SWITCHTO : 0);
--    bool ok, uq=FALSE;
-     /* Find a suitable screen */
-     scr=clientwin_find_suitable_screen(cwin, param);
-@@ -210,25 +169,44 @@
-         ph=region_prepare_manage((WRegion*)scr, cwin, param,
-                                  MANAGE_REDIR_PREFER_YES);
-+        /* Check fullscreen mode. (This is intentionally not done
-+         * for transients and windows with target winprops.)
-+         */
-+        if(extl_table_gets_b(cwin->proptab, "fullscreen", &tmp))
-+            fs=tmp;
-+
-+        if(fs<0)
-+            fs=netwm_check_initial_fullscreen(cwin, param->switchto);
-+    
-+        if(fs<0){
-+            fs=clientwin_check_fullscreen_request(cwin, 
-+                                                  param->geom.w,
-+                                                  param->geom.h,
-+                                                  param->switchto);
-+        }
-+    }
-+
-+    if(fs>0){
-+        /* Full-screen mode succesfull. */
-+        if(pholder_target(ph)==(WRegion*)scr){
-+            /* Discard useless placeholder. */
--        if(try_fullscreen(cwin, scr, param)){
--            if(pholder_target(ph)!=(WRegion*)region_screen_of((WRegion*)cwin)){
--                WRegion *grp=region_groupleader_of((WRegion*)cwin);
--                if(region_do_set_return(grp, ph))
--                    return TRUE;
--            }
-             destroy_obj((Obj*)ph);
-             return TRUE;
-         }
-         
-+        if(!region_do_set_return((WRegion*)cwin, ph))
-+            destroy_obj((Obj*)ph);
-+        
-+        return TRUE;
-     }
-+        
--
-     if(ph==NULL)
-         return FALSE;
-     
-     /* Not in full-screen mode; use the placeholder to attach. */
-     
-+    swf=(param->switchto ? PHOLDER_ATTACH_SWITCHTO : 0);
-     ok=pholder_attach(ph, swf, (WRegion*)cwin);
--    
-     destroy_obj((Obj*)ph);
-     
-     if(uq && ok)
-reverted:
---- new-ion3-darcs/ioncore/netwm.c     2007-03-25 20:10:54.000000000 +0100
-+++ old-ion3-darcs/ioncore/netwm.c     2007-03-25 20:10:54.000000000 +0100
-@@ -22,7 +22,6 @@
- #include "focus.h"
- #include "xwindow.h"
- #include "extlconv.h"
--#include "group.h"
- /*{{{ Atoms */
-@@ -86,7 +85,7 @@
- /*{{{ _NET_WM_STATE */
-+int netwm_check_initial_fullscreen(WClientWin *cwin, bool sw)
--WScreen *netwm_check_initial_fullscreen(WClientWin *cwin)
- {
-     int i, n;
-@@ -97,16 +96,18 @@
-                    1, TRUE, (uchar**)&data);
-     
-     if(n<0)
-+        return -1;
--        return NULL;
-     
-     for(i=0; i<n; i++){
-+        if(data[i]==(long)atom_net_wm_state_fullscreen){
-+            ret=region_enter_fullscreen((WRegion*)cwin, sw);
-+            break;
-+        }
--        if(data[i]==(long)atom_net_wm_state_fullscreen)
--            return region_screen_of((WRegion*)cwin);
-     }
-     
-     XFree((void*)data);
-+    return ret;
--    return NULL;
- }
-@@ -144,10 +145,9 @@
-     if(!REGION_IS_FULLSCREEN(cwin)){
-         if(ev->data.l[0]==_NET_WM_STATE_ADD || 
-            ev->data.l[0]==_NET_WM_STATE_TOGGLE){
--            WRegion *grp=region_groupleader_of((WRegion*)cwin);
-             bool sw=clientwin_fullscreen_may_switchto(cwin);
-             cwin->flags|=CLIENTWIN_FS_RQ;
-+            if(!region_enter_fullscreen((WRegion*)cwin, sw))
--            if(!region_enter_fullscreen(grp, sw))
-                 cwin->flags&=~CLIENTWIN_FS_RQ;
-         }else{
-             /* Should not be set.. */
-@@ -156,10 +156,9 @@
-     }else{
-         if(ev->data.l[0]==_NET_WM_STATE_REMOVE || 
-            ev->data.l[0]==_NET_WM_STATE_TOGGLE){
--            WRegion *grp=region_groupleader_of((WRegion*)cwin);
-             bool sw=clientwin_fullscreen_may_switchto(cwin);
-             cwin->flags&=~CLIENTWIN_FS_RQ;
-+            region_leave_fullscreen((WRegion*)cwin, sw);
--            region_leave_fullscreen(grp, sw);
-         }else{
-             /* Set the flag */
-             cwin->flags|=CLIENTWIN_FS_RQ;
-reverted:
---- new-ion3-darcs/ioncore/netwm.h     2007-03-25 20:10:54.000000000 +0100
-+++ old-ion3-darcs/ioncore/netwm.h     2007-03-25 20:10:54.000000000 +0100
-@@ -14,7 +14,6 @@
- #include "common.h"
- #include "rootwin.h"
--#include "screen.h"
- #define _NET_WM_STATE_REMOVE        0    /* remove/unset property */
- #define _NET_WM_STATE_ADD           1    /* add/set property */
-@@ -23,7 +22,7 @@
- extern void netwm_init();
- extern void netwm_init_rootwin(WRootWin *rw);
-+extern int netwm_check_initial_fullscreen(WClientWin *cwin, bool switchto);
--extern WScreen *netwm_check_initial_fullscreen(WClientWin *cwin);
- extern void netwm_update_state(WClientWin *cwin);
- extern void netwm_delete_state(WClientWin *cwin);
- extern void netwm_set_active(WRegion *reg);
diff --git a/debian/patches/102_config-request-fix.diff b/debian/patches/102_config-request-fix.diff
new file mode 100644 (file)
index 0000000..69175f2
--- /dev/null
@@ -0,0 +1,33 @@
+#! /bin/sh -e
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+    -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+    *)
+        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+        exit 1;;
+esac
+
+exit 0
+@DPATCH@                                                                                                                                                       
+Mon Mar 19 18:37:26 GMT 2007  Tuomo Valkonen <tuomov@iki.fi>
+  * Oops, return in wrong place in fs rq check was breaking other cfgrqs
+diff -rN -u old-ion3-darcs/ioncore/clientwin.c new-ion3-darcs/ioncore/clientwin.c
+--- old-ion3-darcs/ioncore/clientwin.c 2007-03-25 23:14:35.000000000 +0100
++++ new-ion3-darcs/ioncore/clientwin.c 2007-03-25 23:14:35.000000000 +0100
+@@ -1085,9 +1085,9 @@
+             
+             if(!region_fullscreen_scr(grp, scr, sw))
+                 cwin->flags&=~CLIENTWIN_FS_RQ;
++                
++            return TRUE;
+         }
+-        
+-        return TRUE;
+     }
+     return FALSE;
+