Author: olivier
Date: 2006-10-02 21:20:17 +0000 (Mon, 02 Oct 2006)
New Revision: 23265

Modified:
   xfwm4/trunk/configure.ac.in
   xfwm4/trunk/src/client.c
   xfwm4/trunk/src/mypixmap.c
   xfwm4/trunk/src/settings.c
   xfwm4/trunk/src/settings.h
   xfwm4/trunk/src/tabwin.c
   xfwm4/trunk/src/tabwin.h
   xfwm4/trunk/themes/default.keys/keythemerc
Log:
Remove dependency on micro version, rework error handling in pixbuf loading, 
add cancel option when cycling (bug #2373), and other fixes

Modified: xfwm4/trunk/configure.ac.in
===================================================================
--- xfwm4/trunk/configure.ac.in 2006-10-02 21:03:31 UTC (rev 23264)
+++ xfwm4/trunk/configure.ac.in 2006-10-02 21:20:17 UTC (rev 23265)
@@ -3,7 +3,7 @@
 dnl xfwm4 - window manager for the Xfce4 desktop environment
 dnl
 
-m4_define([xfwm4_version], [4.3.99.1])
+m4_define([xfwm4_version], [4.3.99.2])
 
 dnl init autoconf
 AC_COPYRIGHT([Copyright (c) 2002-2005
@@ -55,11 +55,11 @@
   ], [], [$LIBX11_CFLAGS $LIBX11_LDFLAGS $LIBX11_LIBS])
 
 XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.0])
-XDT_CHECK_PACKAGE(LIBXFCE4MCS_CLIENT, libxfce4mcs-client-1.0, [4.3.99.1])
-XDT_CHECK_PACKAGE(LIBXFCE4MCS_MANAGER, libxfce4mcs-manager-1.0, [4.3.99.1])
-XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.3.99.1])
-XDT_CHECK_PACKAGE(LIBXFCEGUI4, libxfcegui4-1.0, [4.3.99.1])
-XFCE_MCS_PLUGIN([XFCE_MCS_MANAGER], [4.3.99.1])
+XDT_CHECK_PACKAGE(LIBXFCE4MCS_CLIENT, libxfce4mcs-client-1.0, [4.3.99])
+XDT_CHECK_PACKAGE(LIBXFCE4MCS_MANAGER, libxfce4mcs-manager-1.0, [4.3.99])
+XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.3.99])
+XDT_CHECK_PACKAGE(LIBXFCEGUI4, libxfcegui4-1.0, [4.3.99])
+XFCE_MCS_PLUGIN([XFCE_MCS_MANAGER], [4.3.99])
 
 dnl
 dnl Startup notification support

Modified: xfwm4/trunk/src/client.c
===================================================================
--- xfwm4/trunk/src/client.c    2006-10-02 21:03:31 UTC (rev 23264)
+++ xfwm4/trunk/src/client.c    2006-10-02 21:20:17 UTC (rev 23265)
@@ -1518,18 +1518,10 @@
 
     clientGetWMNormalHints (c, FALSE);
 
-    c->old_x = c->x;
-    c->old_y = c->y;
-    c->old_width = c->width;
-    c->old_height = c->height;
     c->size->x = c->x;
     c->size->y = c->y;
     c->size->width = c->width;
     c->size->height = c->height;
-    c->fullscreen_old_x = c->x;
-    c->fullscreen_old_y = c->y;
-    c->fullscreen_old_width = c->width;
-    c->fullscreen_old_height = c->height;
     c->previous_width = -1;
     c->previous_height = -1;
     c->border_width = attr.border_width;
@@ -1658,6 +1650,20 @@
         }
     }
 
+    /* 
+       Initialize "old" fields once the position is ensured, to avoid
+       initially maximized or fullscreen windows being placed offscreen
+       once de-maximized
+     */
+    c->old_x = c->x;
+    c->old_y = c->y;
+    c->old_width = c->width;
+    c->old_height = c->height;
+    c->fullscreen_old_x = c->x;
+    c->fullscreen_old_y = c->y;
+    c->fullscreen_old_width = c->width;
+    c->fullscreen_old_height = c->height;
+
     /*
        We must call clientApplyInitialState() after having placed the
        window so that the inital position values are correctly set if the
@@ -3370,7 +3376,7 @@
     }
     else if (xevent->type == KeyRelease)
     {
-        if (xevent->xkey.keycode == 
screen_info->params->keys[KEY_MOVE_CANCEL].keycode)
+        if (xevent->xkey.keycode == 
screen_info->params->keys[KEY_CANCEL].keycode)
         {
             moving = FALSE;
             passdata->released = passdata->use_keys;
@@ -3966,7 +3972,7 @@
     }
     else if (xevent->type == KeyRelease)
     {
-        if (xevent->xkey.keycode == 
screen_info->params->keys[KEY_MOVE_CANCEL].keycode)
+        if (xevent->xkey.keycode == 
screen_info->params->keys[KEY_CANCEL].keycode)
         {
             resizing = FALSE;
             passdata->released = passdata->use_keys;
@@ -4315,7 +4321,8 @@
     ClientCycleData *passdata;
     Client *c, *removed;
     eventFilterStatus status;
-    KeyCode keycode;
+    KeyCode cycle;
+    KeyCode cancel;
     int modifier;
     gboolean key_pressed, cycling, gone;
 
@@ -4332,9 +4339,11 @@
     c = passdata->c;
     screen_info = c->screen_info;
     display_info = screen_info->display_info;
-    keycode = screen_info->params->keys[KEY_CYCLE_WINDOWS].keycode;
+    cycle = screen_info->params->keys[KEY_CYCLE_WINDOWS].keycode;
+    cancel = screen_info->params->keys[KEY_CANCEL].keycode;
     modifier = screen_info->params->keys[KEY_CYCLE_WINDOWS].modifier;
-    key_pressed = ((xevent->type == KeyPress) && (xevent->xkey.keycode == 
keycode));
+    key_pressed = ((xevent->type == KeyPress) && ((xevent->xkey.keycode == 
cycle) ||
+                                                  (xevent->xkey.keycode == 
cancel)));
     status = EVENT_FILTER_STOP;
     cycling = TRUE;
     gone = FALSE;
@@ -4365,8 +4374,13 @@
                 {
                     Client *c2 = NULL;
 
+                    if (xevent->xkey.keycode == cancel)
+                    {
+                        c2 = tabwinGetHead (passdata->tabwin);
+                        cycling = FALSE;
+                    }
                     /* If KEY_CYCLE_WINDOWS has Shift, then do not reverse */
-                    if (!(modifier & ShiftMask) && (xevent->xkey.state & 
ShiftMask))
+                    else if (!(modifier & ShiftMask) && (xevent->xkey.state & 
ShiftMask))
                     {
                         TRACE ("Cycle: previous");
                         c2 = tabwinSelectPrev(passdata->tabwin);

Modified: xfwm4/trunk/src/mypixmap.c
===================================================================
--- xfwm4/trunk/src/mypixmap.c  2006-10-02 21:03:31 UTC (rev 23264)
+++ xfwm4/trunk/src/mypixmap.c  2006-10-02 21:20:17 UTC (rev 23265)
@@ -734,7 +734,6 @@
 xfwmPixmapCompose (GdkPixbuf *pixbuf, gchar * dir, gchar * file)
 {
     GdkPixbuf *alpha;
-    GError *error;
     gchar *filepng;
     gchar *filename;
     gint width, height;
@@ -749,7 +748,6 @@
       NULL };
 
     i = 0;
-    error = NULL;
     alpha = NULL;
 
     while ((image_types[i]) && (!alpha))
@@ -760,12 +758,7 @@
 
         if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
         {
-            alpha = gdk_pixbuf_new_from_file (filename, &error);
-            if (error)
-            {
-                g_warning ("%s", error->message);
-                g_error_free (error);
-            }
+            alpha = gdk_pixbuf_new_from_file (filename, NULL);
         }
         g_free (filename);
         ++i;

Modified: xfwm4/trunk/src/settings.c
===================================================================
--- xfwm4/trunk/src/settings.c  2006-10-02 21:03:31 UTC (rev 23264)
+++ xfwm4/trunk/src/settings.c  2006-10-02 21:20:17 UTC (rev 23265)
@@ -1196,6 +1196,7 @@
     }
 
     parseKeyString (dpy, &screen_info->params->keys[KEY_ADD_WORKSPACE], 
getValue ("add_workspace_key", rc));
+    parseKeyString (dpy, &screen_info->params->keys[KEY_CANCEL], getValue 
("cancel_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_CLOSE_WINDOW], 
getValue ("close_window_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_CYCLE_WINDOWS], 
getValue ("cycle_windows_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_DEL_WORKSPACE], 
getValue ("del_workspace_key", rc));
@@ -1206,7 +1207,6 @@
     parseKeyString (dpy, &screen_info->params->keys[KEY_MAXIMIZE_HORIZ], 
getValue ("maximize_horiz_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_MAXIMIZE_VERT], 
getValue ("maximize_vert_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_MAXIMIZE_WINDOW], 
getValue ("maximize_window_key", rc));
-    parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_CANCEL], getValue 
("move_resize_cancel_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_DOWN], getValue 
("move_window_down_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_DOWN_WORKSPACE], 
getValue ("move_window_down_workspace_key", rc));
     parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_LEFT], getValue 
("move_window_left_key", rc));
@@ -1354,6 +1354,7 @@
         {"wrap_workspaces", NULL, TRUE},
         /* Keys */
         {"add_workspace_key", NULL, TRUE},
+        {"cancel_key", NULL, TRUE},
         {"close_window_key", NULL, TRUE},
         {"cycle_windows_key", NULL, TRUE},
         {"del_workspace_key", NULL, TRUE},
@@ -1365,7 +1366,6 @@
         {"maximize_horiz_key", NULL, TRUE},
         {"maximize_vert_key", NULL, TRUE},
         {"maximize_window_key", NULL, TRUE},
-        {"move_resize_cancel_key", NULL, TRUE},
         {"move_window_down_key", NULL, TRUE},
         {"move_window_down_workspace_key", NULL, TRUE},
         {"move_window_left_key", NULL, TRUE},

Modified: xfwm4/trunk/src/settings.h
===================================================================
--- xfwm4/trunk/src/settings.h  2006-10-02 21:03:31 UTC (rev 23264)
+++ xfwm4/trunk/src/settings.h  2006-10-02 21:20:17 UTC (rev 23265)
@@ -59,65 +59,65 @@
 #define T_INACTIVE                      4
 #define T_PRESSED                       5
 
-#define KEY_MOVE_UP                     0
-#define KEY_MOVE_DOWN                   1
-#define KEY_MOVE_LEFT                   2
-#define KEY_MOVE_RIGHT                  3
-#define KEY_RESIZE_UP                   4
-#define KEY_RESIZE_DOWN                 5
-#define KEY_RESIZE_LEFT                 6
-#define KEY_RESIZE_RIGHT                7
-#define KEY_CYCLE_WINDOWS               8
-#define KEY_CLOSE_WINDOW                9
-#define KEY_HIDE_WINDOW                 10
+#define KEY_ADD_WORKSPACE               0
+#define KEY_CANCEL                      1
+#define KEY_CLOSE_WINDOW                2
+#define KEY_CYCLE_WINDOWS               3
+#define KEY_DEL_WORKSPACE               4
+#define KEY_DOWN_WORKSPACE              5
+#define KEY_HIDE_WINDOW                 6
+#define KEY_LEFT_WORKSPACE              7
+#define KEY_LOWER_WINDOW                8
+#define KEY_MAXIMIZE_HORIZ              9
+#define KEY_MAXIMIZE_VERT               10
 #define KEY_MAXIMIZE_WINDOW             11
-#define KEY_MAXIMIZE_VERT               12
-#define KEY_MAXIMIZE_HORIZ              13
-#define KEY_SHADE_WINDOW                14
-#define KEY_NEXT_WORKSPACE              15
-#define KEY_PREV_WORKSPACE              16
-#define KEY_ADD_WORKSPACE               17
-#define KEY_DEL_WORKSPACE               18
-#define KEY_STICK_WINDOW                19
-#define KEY_WORKSPACE_1                 20
-#define KEY_WORKSPACE_2                 21
-#define KEY_WORKSPACE_3                 22
-#define KEY_WORKSPACE_4                 23
-#define KEY_WORKSPACE_5                 24
-#define KEY_WORKSPACE_6                 25
-#define KEY_WORKSPACE_7                 26
-#define KEY_WORKSPACE_8                 27
-#define KEY_WORKSPACE_9                 28
-#define KEY_WORKSPACE_10                29
-#define KEY_WORKSPACE_11                30
-#define KEY_WORKSPACE_12                31
-#define KEY_MOVE_NEXT_WORKSPACE         32
-#define KEY_MOVE_PREV_WORKSPACE         33
-#define KEY_MOVE_WORKSPACE_1            34
-#define KEY_MOVE_WORKSPACE_2            35
-#define KEY_MOVE_WORKSPACE_3            36
-#define KEY_MOVE_WORKSPACE_4            37
-#define KEY_MOVE_WORKSPACE_5            38
-#define KEY_MOVE_WORKSPACE_6            39
-#define KEY_MOVE_WORKSPACE_7            40
-#define KEY_MOVE_WORKSPACE_8            41
-#define KEY_MOVE_WORKSPACE_9            42
-#define KEY_MOVE_WORKSPACE_10           43
-#define KEY_MOVE_WORKSPACE_11           44
-#define KEY_MOVE_WORKSPACE_12           45
-#define KEY_SHOW_DESKTOP                58
-#define KEY_LOWER_WINDOW                59
-#define KEY_RAISE_WINDOW                60
-#define KEY_TOGGLE_FULLSCREEN           61
-#define KEY_UP_WORKSPACE                62
-#define KEY_DOWN_WORKSPACE              63
-#define KEY_LEFT_WORKSPACE              64
-#define KEY_RIGHT_WORKSPACE             65
-#define KEY_MOVE_UP_WORKSPACE           66
-#define KEY_MOVE_DOWN_WORKSPACE         67
-#define KEY_MOVE_LEFT_WORKSPACE         68
-#define KEY_MOVE_RIGHT_WORKSPACE        69
-#define KEY_MOVE_CANCEL                 70
+#define KEY_MOVE_DOWN                   12
+#define KEY_MOVE_DOWN_WORKSPACE         13
+#define KEY_MOVE_LEFT                   14
+#define KEY_MOVE_LEFT_WORKSPACE         15
+#define KEY_MOVE_NEXT_WORKSPACE         16
+#define KEY_MOVE_PREV_WORKSPACE         17
+#define KEY_MOVE_RIGHT                  18
+#define KEY_MOVE_RIGHT_WORKSPACE        19
+#define KEY_MOVE_UP                     20
+#define KEY_MOVE_UP_WORKSPACE           21
+#define KEY_MOVE_WORKSPACE_1            22
+#define KEY_MOVE_WORKSPACE_10           23
+#define KEY_MOVE_WORKSPACE_11           24
+#define KEY_MOVE_WORKSPACE_12           25
+#define KEY_MOVE_WORKSPACE_2            26
+#define KEY_MOVE_WORKSPACE_3            27
+#define KEY_MOVE_WORKSPACE_4            28
+#define KEY_MOVE_WORKSPACE_5            29
+#define KEY_MOVE_WORKSPACE_6            30
+#define KEY_MOVE_WORKSPACE_7            31
+#define KEY_MOVE_WORKSPACE_8            32
+#define KEY_MOVE_WORKSPACE_9            33
+#define KEY_NEXT_WORKSPACE              34
+#define KEY_PREV_WORKSPACE              35
+#define KEY_RAISE_WINDOW                36
+#define KEY_RESIZE_DOWN                 37
+#define KEY_RESIZE_LEFT                 38
+#define KEY_RESIZE_RIGHT                39
+#define KEY_RESIZE_UP                   40
+#define KEY_RIGHT_WORKSPACE             41
+#define KEY_SHADE_WINDOW                42
+#define KEY_SHOW_DESKTOP                43
+#define KEY_STICK_WINDOW                44
+#define KEY_TOGGLE_FULLSCREEN           45
+#define KEY_UP_WORKSPACE                58
+#define KEY_WORKSPACE_1                 59
+#define KEY_WORKSPACE_10                60
+#define KEY_WORKSPACE_11                61
+#define KEY_WORKSPACE_12                62
+#define KEY_WORKSPACE_2                 63
+#define KEY_WORKSPACE_3                 64
+#define KEY_WORKSPACE_4                 65
+#define KEY_WORKSPACE_5                 66
+#define KEY_WORKSPACE_6                 67
+#define KEY_WORKSPACE_7                 68
+#define KEY_WORKSPACE_8                 69
+#define KEY_WORKSPACE_9                 70
 #define KEY_COUNT                       71
 
 #define ALIGN_LEFT                      0

Modified: xfwm4/trunk/src/tabwin.c
===================================================================
--- xfwm4/trunk/src/tabwin.c    2006-10-02 21:03:31 UTC (rev 23264)
+++ xfwm4/trunk/src/tabwin.c    2006-10-02 21:20:17 UTC (rev 23265)
@@ -91,7 +91,7 @@
     }
     else
     {
-        canonical = g_strdup (_("Unknown application!"));
+        canonical = g_strdup ("...");
     }
 
     return canonical;
@@ -389,6 +389,21 @@
     return tabwinGetSelected (t);
 }
 
+Client *
+tabwinGetHead (Tabwin * t)
+{
+    GList *next;
+
+    g_return_val_if_fail (t != NULL, NULL);
+
+    if ((t->head) && (t->head->data))
+    {
+        return (Client *) g_object_get_data (G_OBJECT (t->head->data), 
"client-ptr-val");
+    }
+
+    return NULL;
+}
+
 void
 tabwinDestroy (Tabwin * t)
 {

Modified: xfwm4/trunk/src/tabwin.h
===================================================================
--- xfwm4/trunk/src/tabwin.h    2006-10-02 21:03:31 UTC (rev 23264)
+++ xfwm4/trunk/src/tabwin.h    2006-10-02 21:20:17 UTC (rev 23265)
@@ -48,11 +48,17 @@
     int grid_rows;
 };
 
-Tabwin *tabwinCreate (GdkScreen *, Client *, Client *, unsigned int, gboolean);
-Client *tabwinGetSelected (Tabwin *);
-Client *tabwinSelectNext (Tabwin *);
-Client *tabwinSelectPrev (Tabwin *);
-Client *tabwinRemoveClient (Tabwin *, Client *);
-void    tabwinDestroy (Tabwin *);
+Tabwin *tabwinCreate                    (GdkScreen *,
+                                         Client *,
+                                         Client *,
+                                         unsigned int,
+                                         gboolean);
+Client *tabwinGetSelected               (Tabwin *);
+Client *tabwinSelectNext                (Tabwin *);
+Client *tabwinSelectPrev                (Tabwin *);
+Client *tabwinGetHead                   (Tabwin *);
+Client *tabwinRemoveClient              (Tabwin *,
+                                         Client *);
+void    tabwinDestroy                   (Tabwin *);
 
 #endif /* INC_TABWIN_H */

Modified: xfwm4/trunk/themes/default.keys/keythemerc
===================================================================
--- xfwm4/trunk/themes/default.keys/keythemerc  2006-10-02 21:03:31 UTC (rev 
23264)
+++ xfwm4/trunk/themes/default.keys/keythemerc  2006-10-02 21:20:17 UTC (rev 
23265)
@@ -1,4 +1,5 @@
 add_workspace_key=Alt+Insert
+cancel_key=Escape
 close_window_key=Alt+F4
 cycle_windows_key=Alt+Tab
 del_workspace_key=Alt+Delete
@@ -21,6 +22,9 @@
 move_window_right_workspace_key=None
 move_window_up_key=Control+Shift+Alt+Up
 move_window_up_workspace_key=None
+move_window_workspace_10_key=None
+move_window_workspace_11_key=None
+move_window_workspace_12_key=None
 move_window_workspace_1_key=Alt+Control+KP_1
 move_window_workspace_2_key=Alt+Control+KP_2
 move_window_workspace_3_key=Alt+Control+KP_3
@@ -30,9 +34,6 @@
 move_window_workspace_7_key=Alt+Control+KP_7
 move_window_workspace_8_key=Alt+Control+KP_8
 move_window_workspace_9_key=Alt+Control+KP_9
-move_window_workspace_10_key=None
-move_window_workspace_11_key=None
-move_window_workspace_12_key=None
 next_workspace_key=None
 prev_workspace_key=None
 raise_window_key=Shift+Alt+Page_Up
@@ -45,6 +46,9 @@
 show_desktop_key=Control+Alt+d
 stick_window_key=Alt+F10
 up_workspace_key=Control+Alt+Up
+workspace_10_key=Control+F10
+workspace_11_key=Control+F11
+workspace_12_key=Control+F12
 workspace_1_key=Control+F1
 workspace_2_key=Control+F2
 workspace_3_key=Control+F3
@@ -54,6 +58,3 @@
 workspace_7_key=Control+F7
 workspace_8_key=Control+F8
 workspace_9_key=Control+F9
-workspace_10_key=Control+F10
-workspace_11_key=Control+F11
-workspace_12_key=Control+F12

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to