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