From olivier at xfce.org Sun Jun 1 01:41:10 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Sat, 31 May 2008 23:41:10 +0000 (UTC) Subject: [Xfce4-commits] r27001 - xfwm4/trunk/src Message-ID: <20080531234110.7EC4BF29DD@mocha.foo-projects.org> Author: olivier Date: 2008-05-31 23:41:10 +0000 (Sat, 31 May 2008) New Revision: 27001 Modified: xfwm4/trunk/src/frame.c xfwm4/trunk/src/icons.c xfwm4/trunk/src/screen.h xfwm4/trunk/src/settings.c xfwm4/trunk/src/tabwin.c Log: Use actual font metrics to compute font height as it gives better results than layout extents, lighten icons of iconified windows in tabwin selector. Modified: xfwm4/trunk/src/frame.c =================================================================== --- xfwm4/trunk/src/frame.c 2008-05-31 20:04:33 UTC (rev 27000) +++ xfwm4/trunk/src/frame.c 2008-05-31 23:41:10 UTC (rev 27001) @@ -289,7 +289,7 @@ PangoRectangle logical_rect; int width, x, hoffset, w1, w2, w3, w4, w5, temp; int voffset, title_x, title_y; - int top_height; + int title_height, top_height; TRACE ("entering frameCreateTitlePixmap"); @@ -344,11 +344,19 @@ voffset = screen_info->params->title_vertical_offset_inactive; } - title_y = voffset + (frameTop (c) - logical_rect.height) / 2; - if (title_y + logical_rect.height > frameTop (c)) + title_height = screen_info->font_height; + if (!title_height) { - title_y = MAX (0, frameTop (c) - logical_rect.height); + /* If for some reason the font height is not known, + * use the actual pango layout height. + */ + title_height = logical_rect.height; } + title_y = voffset + (frameTop (c) - title_height) / 2; + if (title_y + title_height > frameTop (c)) + { + title_y = MAX (0, frameTop (c) - title_height); + } if (!xfwmPixmapNone(&screen_info->top[3][ACTIVE])) { Modified: xfwm4/trunk/src/icons.c =================================================================== --- xfwm4/trunk/src/icons.c 2008-05-31 20:04:33 UTC (rev 27000) +++ xfwm4/trunk/src/icons.c 2008-05-31 23:41:10 UTC (rev 27001) @@ -524,4 +524,3 @@ return xfce_inline_icon_at_size (default_icon_data, width, height); } - Modified: xfwm4/trunk/src/screen.h =================================================================== --- xfwm4/trunk/src/screen.h 2008-05-31 20:04:33 UTC (rev 27000) +++ xfwm4/trunk/src/screen.h 2008-05-31 23:41:10 UTC (rev 27001) @@ -83,6 +83,9 @@ GdkGC *black_gc; GdkGC *white_gc; + /* Title font height */ + int font_height; + /* Screen data */ Colormap cmap; GdkScreen *gscr; Modified: xfwm4/trunk/src/settings.c =================================================================== --- xfwm4/trunk/src/settings.c 2008-05-31 20:04:33 UTC (rev 27000) +++ xfwm4/trunk/src/settings.c 2008-05-31 23:41:10 UTC (rev 27001) @@ -994,6 +994,26 @@ return TITLE_SHADOW_NONE; } +static int +getFontHeight (const PangoFontDescription *desc, PangoContext *context) +{ + PangoFontMetrics *metrics; + PangoLanguage *language; + int height; + + g_return_val_if_fail (desc, 0); + g_return_val_if_fail (context, 0); + + language = pango_context_get_language (context); + metrics = pango_context_get_metrics (context, desc, language); + height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) + + pango_font_metrics_get_descent (metrics)); + pango_font_metrics_unref (metrics); + + return height; +} + + static void loadTheme (ScreenInfo *screen_info, Settings *rc) { @@ -1038,12 +1058,14 @@ gchar *theme; gchar *font; PangoFontDescription *desc; + PangoContext *context; guint i, j; widget = myScreenGetGtkWidget (screen_info); display_info = screen_info->display_info; desc = NULL; + context = NULL; rc[0].value = getUIStyle (widget, "fg", "selected"); rc[1].value = getUIStyle (widget, "fg", "insensitive"); @@ -1096,13 +1118,16 @@ display_info->dbl_click_time = abs (g_value_get_int (&tmp_val)); } + screen_info->font_height = 0; font = getValue ("title_font", rc); if (font && strlen (font)) { desc = pango_font_description_from_string (font); + context = getUIPangoContext (widget); if (desc) { gtk_widget_modify_font (widget, desc); + screen_info->font_height = getFontHeight (desc, context); pango_font_description_free (desc); } } Modified: xfwm4/trunk/src/tabwin.c =================================================================== --- xfwm4/trunk/src/tabwin.c 2008-05-31 20:04:33 UTC (rev 27000) +++ xfwm4/trunk/src/tabwin.c 2008-05-31 23:41:10 UTC (rev 27001) @@ -144,15 +144,27 @@ createWindowIcon (Client * c) { GdkPixbuf *icon_pixbuf; + GdkPixbuf *icon_pixbuf_stated; GtkWidget *icon; icon_pixbuf = getAppIcon (c->screen_info->display_info, c->window, WIN_ICON_SIZE, WIN_ICON_SIZE); + icon_pixbuf_stated = NULL; icon = gtk_image_new (); g_object_set_data (G_OBJECT (icon), "client-ptr-val", c); if (icon_pixbuf) { - gtk_image_set_from_pixbuf (GTK_IMAGE (icon), icon_pixbuf); + if (FLAG_TEST (c->flags, CLIENT_FLAG_ICONIFIED)) + { + icon_pixbuf_stated = gdk_pixbuf_copy (icon_pixbuf); + gdk_pixbuf_saturate_and_pixelate (icon_pixbuf, icon_pixbuf_stated, 0.5, TRUE); + gtk_image_set_from_pixbuf (GTK_IMAGE (icon), icon_pixbuf_stated); + g_object_unref(icon_pixbuf_stated); + } + else + { + gtk_image_set_from_pixbuf (GTK_IMAGE (icon), icon_pixbuf); + } g_object_unref(icon_pixbuf); } else From olivier at xfce.org Sun Jun 1 01:45:11 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Sat, 31 May 2008 23:45:11 +0000 (UTC) Subject: [Xfce4-commits] r27002 - xfwm4/trunk/src Message-ID: <20080531234511.EB0FAF29DD@mocha.foo-projects.org> Author: olivier Date: 2008-05-31 23:45:11 +0000 (Sat, 31 May 2008) New Revision: 27002 Modified: xfwm4/trunk/src/screen.c Log: Make sure title height is initialized Modified: xfwm4/trunk/src/screen.c =================================================================== --- xfwm4/trunk/src/screen.c 2008-05-31 23:41:10 UTC (rev 27001) +++ xfwm4/trunk/src/screen.c 2008-05-31 23:45:11 UTC (rev 27002) @@ -275,6 +275,7 @@ screen_info->systray = getSystrayWindow (display_info, screen_info->net_system_tray_selection); #endif + screen_info->font_height = 0; screen_info->box_gc = None; screen_info->black_gc = NULL; screen_info->white_gc = NULL; From olivier at xfce.org Sun Jun 1 11:24:30 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Sun, 1 Jun 2008 09:24:30 +0000 (UTC) Subject: [Xfce4-commits] r27003 - xfwm4/trunk/src Message-ID: <20080601092430.D4013F29DD@mocha.foo-projects.org> Author: olivier Date: 2008-06-01 09:24:30 +0000 (Sun, 01 Jun 2008) New Revision: 27003 Modified: xfwm4/trunk/src/client.c Log: Missing header Modified: xfwm4/trunk/src/client.c =================================================================== --- xfwm4/trunk/src/client.c 2008-05-31 23:45:11 UTC (rev 27002) +++ xfwm4/trunk/src/client.c 2008-06-01 09:24:30 UTC (rev 27003) @@ -44,6 +44,7 @@ #include "hints.h" #include "icons.h" #include "misc.h" +#include "moveresize.h" #include "mypixmap.h" #include "mywindow.h" #include "netwm.h" From olivier at xfce.org Sun Jun 1 12:25:24 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Sun, 1 Jun 2008 10:25:24 +0000 (UTC) Subject: [Xfce4-commits] r27004 - xfwm4/trunk/src Message-ID: <20080601102524.CFCE6F29DD@mocha.foo-projects.org> Author: olivier Date: 2008-06-01 10:25:24 +0000 (Sun, 01 Jun 2008) New Revision: 27004 Modified: xfwm4/trunk/src/tabwin.c Log: Capitalize class name, use brackets to show hidden windows, decrease saturation for icons of hidden windows. Modified: xfwm4/trunk/src/tabwin.c =================================================================== --- xfwm4/trunk/src/tabwin.c 2008-06-01 09:24:30 UTC (rev 27003) +++ xfwm4/trunk/src/tabwin.c 2008-06-01 10:25:24 UTC (rev 27004) @@ -86,10 +86,9 @@ if (s) { - canonical = g_strdup (s); - g_strcanon (canonical, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", ' '); + canonical = g_ascii_strup (s, -1); + g_strcanon (canonical, "[]()0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", ' '); g_strstrip (canonical); - *canonical = g_ascii_toupper (*canonical); } else { @@ -129,6 +128,7 @@ tabwinSetSelected (Tabwin * t, GtkWidget * w) { Client *c; + gchar *classname; if (t->selected_callback) { @@ -137,7 +137,16 @@ t->selected_callback = g_signal_connect (G_OBJECT (w), "expose-event", G_CALLBACK (paint_selected), NULL); c = g_object_get_data (G_OBJECT (w), "client-ptr-val"); - tabwinSetLabel (t, c->class.res_class, c->name, c->win_workspace); + if (FLAG_TEST (c->flags, CLIENT_FLAG_ICONIFIED)) + { + classname = g_strdup_printf ("[ %s ]", c->class.res_class); + } + else + { + classname = g_strdup(c->class.res_class); + } + tabwinSetLabel (t, classname, c->name, c->win_workspace); + g_free (classname); } static GtkWidget * @@ -157,7 +166,7 @@ if (FLAG_TEST (c->flags, CLIENT_FLAG_ICONIFIED)) { icon_pixbuf_stated = gdk_pixbuf_copy (icon_pixbuf); - gdk_pixbuf_saturate_and_pixelate (icon_pixbuf, icon_pixbuf_stated, 0.5, TRUE); + gdk_pixbuf_saturate_and_pixelate (icon_pixbuf, icon_pixbuf_stated, 0.25, TRUE); gtk_image_set_from_pixbuf (GTK_IMAGE (icon), icon_pixbuf_stated); g_object_unref(icon_pixbuf_stated); } From olivier at xfce.org Sun Jun 1 12:45:42 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Sun, 1 Jun 2008 10:45:42 +0000 (UTC) Subject: [Xfce4-commits] r27005 - xfwm4/trunk/src Message-ID: <20080601104542.51D2CF29DD@mocha.foo-projects.org> Author: olivier Date: 2008-06-01 10:45:42 +0000 (Sun, 01 Jun 2008) New Revision: 27005 Modified: xfwm4/trunk/src/compositor.c Log: No need for xsync there Modified: xfwm4/trunk/src/compositor.c =================================================================== --- xfwm4/trunk/src/compositor.c 2008-06-01 10:25:24 UTC (rev 27004) +++ xfwm4/trunk/src/compositor.c 2008-06-01 10:45:42 UTC (rev 27005) @@ -1090,8 +1090,6 @@ cw->redirected = FALSE; XCompositeUnredirectWindow (display_info->dpy, cw->id, display_info->composite_mode); - XSync (display_info->dpy, FALSE); - TRACE ("Window 0x%lx unredirected, wins_unredirected is %i", cw->id, screen_info->wins_unredirected); } } @@ -3026,7 +3024,6 @@ return; } - XSync (display_info->dpy, FALSE); myDisplayGrabServer (display_info); XQueryTree (display_info->dpy, screen_info->xroot, &w1, &w2, &wins, &count); @@ -3042,7 +3039,6 @@ XFree (wins); } myDisplayUngrabServer (display_info); - XSync (display_info->dpy, FALSE); #endif /* HAVE_COMPOSITOR */ } From colossus at xfce.org Sun Jun 1 20:03:37 2008 From: colossus at xfce.org (Giuseppe Torelli) Date: Sun, 1 Jun 2008 18:03:37 +0000 (UTC) Subject: [Xfce4-commits] r27006 - xarchiver/trunk/src Message-ID: <20080601180337.B6E40F29DD@mocha.foo-projects.org> Author: colossus Date: 2008-06-01 18:03:37 +0000 (Sun, 01 Jun 2008) New Revision: 27006 Modified: xarchiver/trunk/src/archive.c xarchiver/trunk/src/bzip2.c xarchiver/trunk/src/interface.c xarchiver/trunk/src/main.c xarchiver/trunk/src/window.c Log: Fixed bug #4102. Applied patch from Bruno Jesus to avoid gtk-warning when using switch from console. Modified: xarchiver/trunk/src/archive.c =================================================================== --- xarchiver/trunk/src/archive.c 2008-06-01 10:45:42 UTC (rev 27005) +++ xarchiver/trunk/src/archive.c 2008-06-01 18:03:37 UTC (rev 27006) @@ -237,7 +237,8 @@ if (archive->tmp != NULL) { xa_delete_temp_directory (archive,0); - gtk_widget_hide(viewport2); + if(MainWindow) + gtk_widget_hide(viewport2); g_free (archive->tmp); archive->tmp = NULL; } @@ -283,8 +284,11 @@ if (mkdtemp (tmp_dir) == 0) { response = xa_show_message_dialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't create temporary directory in /tmp:"),g_strerror(errno) ); - gtk_widget_set_sensitive (Stop_button, FALSE); - Update_StatusBar (_("Operation failed.")); + if(MainWindow) //avoid if we're on console + { + gtk_widget_set_sensitive (Stop_button, FALSE); + Update_StatusBar (_("Operation failed.")); + } return FALSE; } archive->tmp = strdup(tmp_dir); @@ -300,7 +304,8 @@ GSList *_commands = commands; archive->parse_output = 0; - gtk_widget_show (viewport2); + if(MainWindow) + gtk_widget_show (viewport2); while (_commands) { g_print ("%s\n",(gchar*)_commands->data); @@ -314,6 +319,8 @@ break; else if(MainWindow) //avoid if we are on console gtk_main_iteration_do (FALSE); + + usleep(1000); //give the processor time to rest (0.1 sec) } result = xa_check_child_for_error_on_exit(archive,status); if (result == FALSE) Modified: xarchiver/trunk/src/bzip2.c =================================================================== --- xarchiver/trunk/src/bzip2.c 2008-06-01 10:45:42 UTC (rev 27005) +++ xarchiver/trunk/src/bzip2.c 2008-06-01 18:03:37 UTC (rev 27006) @@ -170,7 +170,7 @@ void lzma_gzip_bzip2_extract (XArchive *archive) { GSList *list = NULL; - gchar *command,*executable = NULL,*filename = NULL; + gchar *command,*executable = NULL,*filename = NULL, *dot = NULL, *filename_noext = NULL; gchar tmp_dir[14] = ""; gboolean result = FALSE; @@ -178,15 +178,15 @@ { case XARCHIVETYPE_BZIP2: executable = "bzip2 -f -d "; - filename = "dummy.bz2"; + filename = archive->escaped_path; break; case XARCHIVETYPE_GZIP: executable = "gzip -f -d -n "; - filename = "dummy.gz"; + filename = archive->escaped_path; break; case XARCHIVETYPE_LZMA: executable = "lzma -f -d "; - filename = "dummy.lzma"; + filename = archive->escaped_path; break; default: @@ -197,7 +197,7 @@ if (result == 0) return; //TODO: fix the crash when viewing a bzip2 compressed file - if (MainWindow && extract_window) + if (extract_window) { archive->extraction_path = g_strdup (gtk_entry_get_text (GTK_ENTRY (extract_window->destination_path_entry))); @@ -207,7 +207,17 @@ command = g_strconcat(executable,archive->tmp,"/",filename,NULL); list = g_slist_append(list,command); - command = g_strconcat("mv -f ",archive->tmp,"/dummy ",archive->extraction_path,"/",archive->root_entry->child->filename,NULL); + if (MainWindow) + command = g_strconcat("mv -f ",archive->tmp," ",archive->extraction_path,"/",archive->root_entry->child->filename,NULL); + else + { + dot = strchr(filename,'.'); + if (G_LIKELY(dot)) + filename_noext = g_strndup(filename, ( dot - filename )); + command = g_strconcat("mv -f ",archive->tmp,"/",filename_noext," ",archive->extraction_path); + g_free(filename_noext); + } + list = g_slist_append(list,command); result = xa_run_command (archive,list); } Modified: xarchiver/trunk/src/interface.c =================================================================== --- xarchiver/trunk/src/interface.c 2008-06-01 10:45:42 UTC (rev 27005) +++ xarchiver/trunk/src/interface.c 2008-06-01 18:03:37 UTC (rev 27006) @@ -458,6 +458,8 @@ int xa_progressbar_pulse (gpointer data) { + if ( ! MainWindow) + return; if ( ! GTK_WIDGET_VISIBLE(viewport2) ) return FALSE; Modified: xarchiver/trunk/src/main.c =================================================================== --- xarchiver/trunk/src/main.c 2008-06-01 10:45:42 UTC (rev 27005) +++ xarchiver/trunk/src/main.c 2008-06-01 18:03:37 UTC (rev 27006) @@ -420,7 +420,7 @@ XArchiveType type; type = xa_detect_archive_type (filename); - if (type == -2) + if (type == -1 || type == -2) return NULL; archive = xa_init_archive_structure (); Modified: xarchiver/trunk/src/window.c =================================================================== --- xarchiver/trunk/src/window.c 2008-06-01 10:45:42 UTC (rev 27005) +++ xarchiver/trunk/src/window.c 2008-06-01 18:03:37 UTC (rev 27006) @@ -131,36 +131,50 @@ void xa_archive_operation_finished(XArchive *archive,gboolean error) { - gtk_widget_set_sensitive(Stop_button,FALSE); - gtk_widget_hide(viewport2); + if(MainWindow) + { + gtk_widget_set_sensitive(Stop_button,FALSE); + gtk_widget_hide(viewport2); + } + if (archive->status == XA_ARCHIVESTATUS_ADD || archive->status == XA_ARCHIVESTATUS_DELETE) { xa_reload_archive_content(archive); return; } - if (archive->has_comment) - gtk_widget_set_sensitive (comment_menu,TRUE); - else - gtk_widget_set_sensitive (comment_menu,FALSE); - if (archive->has_comment && archive->status == XA_ARCHIVESTATUS_OPEN && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs_window->check_show_comment))) - xa_show_archive_comment (NULL, NULL); + if(MainWindow) + { + if (archive->has_comment) + gtk_widget_set_sensitive (comment_menu,TRUE); + else + gtk_widget_set_sensitive (comment_menu,FALSE); + if (archive->has_comment && archive->status == XA_ARCHIVESTATUS_OPEN && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs_window->check_show_comment))) + xa_show_archive_comment (NULL, NULL); + } + if (archive->status == XA_ARCHIVESTATUS_SFX && archive->type == XARCHIVETYPE_RAR) { - gtk_widget_set_sensitive ( exe_menu, FALSE); + if(MainWindow) + gtk_widget_set_sensitive ( exe_menu, FALSE); response = xa_show_message_dialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_INFO,GTK_BUTTONS_OK,_("The sfx archive was saved as:"),archive->tmp ); } - xa_set_button_state (1,1,1,archive->can_add,archive->can_extract,archive->has_sfx,archive->has_test,archive->has_properties); - if (error) - Update_StatusBar ( _("Operation completed.")); - else - Update_StatusBar ( _("Operation failed!")); + if(MainWindow) + { + xa_set_button_state (1,1,1,archive->can_add,archive->can_extract,archive->has_sfx,archive->has_test,archive->has_properties); + if (error) + Update_StatusBar ( _("Operation completed.")); + else + Update_StatusBar ( _("Operation failed!")); + } + if (archive->status == XA_ARCHIVESTATUS_TEST) xa_show_cmd_line_output (NULL); - gtk_widget_grab_focus (GTK_WIDGET(archive->treeview)); + if(MainWindow) + gtk_widget_grab_focus (GTK_WIDGET(archive->treeview)); archive->status = XA_ARCHIVESTATUS_IDLE; } @@ -934,7 +948,7 @@ void xa_about (GtkMenuItem *menuitem, gpointer user_data) { static GtkWidget *about = NULL; - const char *authors[] = {"\nMain developer:\nGiuseppe Torelli \n\nArchive navigation code:\nJohn Berthels\n\nLHA and DEB support:\n?ukasz Zemczak \n\nLZMA support:\nThomas Dy \n",NULL}; + const char *authors[] = {"\nMain developer:\nGiuseppe Torelli \n\nArchive navigation code:\nJohn Berthels\n\nCode fixing:\nBruno Jesus <00cpxxx at gmail.com>\n\nLHA and DEB support:\n?ukasz Zemczak \n\nLZMA support:\nThomas Dy \n",NULL}; const char *documenters[] = {"\nSpecial thanks to Bjoern Martensen for\nbugs hunting and Xarchiver Tango logo.\n\nThanks to:\nBenedikt Meurer\nStephan Arts\nEnrico Tr?ger\nUracile for the stunning logo\n", NULL}; if (about == NULL) @@ -1077,7 +1091,7 @@ { FILE *dummy_ptr = NULL; int xx = -1; - unsigned char magic[14]; + unsigned char magic[14]={0,0,0,0,0,0,0,0,0,0,0,0,0,0}; /* avoid problems with garbage */ if (filename != NULL) dummy_ptr = fopen (filename,"r"); From olivier at xfce.org Sun Jun 1 23:24:07 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Sun, 1 Jun 2008 21:24:07 +0000 (UTC) Subject: [Xfce4-commits] r27007 - xfwm4/trunk/src Message-ID: <20080601212407.CCE84F29DD@mocha.foo-projects.org> Author: olivier Date: 2008-06-01 21:24:07 +0000 (Sun, 01 Jun 2008) New Revision: 27007 Modified: xfwm4/trunk/src/client.c xfwm4/trunk/src/display.c xfwm4/trunk/src/display.h xfwm4/trunk/src/events.c xfwm4/trunk/src/menu.c xfwm4/trunk/src/menu.h xfwm4/trunk/src/moveresize.c xfwm4/trunk/src/netwm.c xfwm4/trunk/src/screen.c xfwm4/trunk/src/screen.h Log: Rework move/resize, better keyboard operations, allow move/resize from menu and from taskbar - TODO: Change keyboard shortcuts accordingly Modified: xfwm4/trunk/src/client.c =================================================================== --- xfwm4/trunk/src/client.c 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/client.c 2008-06-01 21:24:07 UTC (rev 27007) @@ -68,6 +68,8 @@ #define FRAME_EVENT_MASK \ SubstructureNotifyMask|\ SubstructureRedirectMask|\ + PointerMotionMask|\ + ButtonMotionMask|\ FocusChangeMask|\ EnterWindowMask|\ PropertyChangeMask @@ -1685,7 +1687,6 @@ } clientAddToList (c); - clientSetNetActions (c); clientGrabButtons(c); /* Initialize per client menu button pixmap */ @@ -1763,6 +1764,8 @@ { clientRaise (c, None); clientInitFocusFlag (c); + clientSetNetState (c); + clientSetNetActions (c); } } else @@ -1770,6 +1773,7 @@ clientRaise (c, None); setWMState (display_info, c->window, IconicState); clientSetNetState (c); + clientSetNetActions (c); } if (!grabbed) @@ -2113,6 +2117,7 @@ setWMState (display_info, c->window, NormalState); } clientSetNetState (c); + clientSetNetActions (c); } void @@ -2171,6 +2176,7 @@ setWMState (display_info, c->window, IconicState); } clientSetNetState (c); + clientSetNetActions (c); } void @@ -2720,6 +2726,7 @@ FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED); frameQueueDraw (c, FALSE); clientSetNetState (c); + clientSetNetActions (c); } static void @@ -2890,6 +2897,9 @@ frameRight (c), frameBottom (c)); + /* Maximized windows w/out border cannot be resized, update allowed actions */ + clientSetNetActions (c); + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MANAGED) && (restore_position)) { /* Modified: xfwm4/trunk/src/display.c =================================================================== --- xfwm4/trunk/src/display.c 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/display.c 2008-06-01 21:24:07 UTC (rev 27007) @@ -97,6 +97,8 @@ "_NET_SUPPORTED", "_NET_SUPPORTING_WM_CHECK", "_NET_SYSTEM_TRAY_OPCODE", + "_NET_WM_ACTION_ABOVE", + "_NET_WM_ACTION_BELOW", "_NET_WM_ACTION_CHANGE_DESKTOP", "_NET_WM_ACTION_CLOSE", "_NET_WM_ACTION_FULLSCREEN", Modified: xfwm4/trunk/src/display.h =================================================================== --- xfwm4/trunk/src/display.h 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/display.h 2008-06-01 21:24:07 UTC (rev 27007) @@ -113,6 +113,8 @@ SIDE_TOP, SIDE_COUNT }; +#define NO_HANDLE -1 +#define HANDLES_COUNT (CORNER_COUNT + SIDE_COUNT - 1) enum { @@ -189,6 +191,8 @@ NET_SUPPORTED, NET_SUPPORTING_WM_CHECK, NET_SYSTEM_TRAY_OPCODE, + NET_WM_ACTION_ABOVE, + NET_WM_ACTION_BELOW, NET_WM_ACTION_CHANGE_DESKTOP, NET_WM_ACTION_CLOSE, NET_WM_ACTION_FULLSCREEN, Modified: xfwm4/trunk/src/events.c =================================================================== --- xfwm4/trunk/src/events.c 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/events.c 2008-06-01 21:24:07 UTC (rev 27007) @@ -2599,6 +2599,12 @@ } frameQueueDraw (c, FALSE); break; + case MENU_OP_MOVE: + clientMove (c, NULL); + break; + case MENU_OP_RESIZE: + clientResize (c, CORNER_BOTTOM_RIGHT, NULL); + break; case MENU_OP_MINIMIZE_ALL: clientHideAll (c, c->win_workspace); frameQueueDraw (c, FALSE); @@ -2667,13 +2673,16 @@ return; } + screen_info = c->screen_info; + display_info = screen_info->display_info; + x = px; y = py; c->button_status[MENU_BUTTON] = BUTTON_STATE_PRESSED; frameQueueDraw (c, FALSE); y = (gdouble) c->y; - ops = MENU_OP_DELETE | MENU_OP_MINIMIZE_ALL | MENU_OP_WORKSPACES; + ops = MENU_OP_DELETE | MENU_OP_MINIMIZE_ALL | MENU_OP_WORKSPACES | MENU_OP_MOVE | MENU_OP_RESIZE; insensitive = 0; if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_CLOSE)) @@ -2698,6 +2707,18 @@ } } + if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MOVE)) + { + insensitive |= MENU_OP_MOVE; + } + + if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_RESIZE) || + ((FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) + && (screen_info->params->borderless_maximize)))) + { + insensitive |= MENU_OP_RESIZE; + } + if (FLAG_TEST (c->flags, CLIENT_FLAG_ICONIFIED)) { ops |= MENU_OP_UNMINIMIZE; @@ -2774,10 +2795,6 @@ insensitive |= MENU_OP_WORKSPACES; } - /* c is not null here */ - screen_info = c->screen_info; - display_info = screen_info->display_info; - if (screen_info->button_handler_id) { g_signal_handler_disconnect (GTK_OBJECT (myScreenGetGtkWidget (screen_info)), screen_info->button_handler_id); Modified: xfwm4/trunk/src/menu.c =================================================================== --- xfwm4/trunk/src/menu.c 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/menu.c 2008-06-01 21:24:07 UTC (rev 27007) @@ -44,6 +44,9 @@ {MENU_OP_MINIMIZE, "gtk-undo", N_("_Hide")}, {MENU_OP_MINIMIZE_ALL, "gtk-clear", N_("Hide _all others")}, {MENU_OP_UNMINIMIZE, "gtk-add", N_("S_how")}, + {MENU_OP_MOVE, NULL, N_("Move")}, + {MENU_OP_RESIZE, NULL, N_("Resize")}, + {0, NULL, NULL}, {MENU_OP_SHADE, "gtk-goto-top", N_("_Shade")}, {MENU_OP_UNSHADE, "gtk-goto-bottom", N_("Un_shade")}, {MENU_OP_STICK, "gtk-add", N_("S_tick")}, Modified: xfwm4/trunk/src/menu.h =================================================================== --- xfwm4/trunk/src/menu.h 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/menu.h 2008-06-01 21:24:07 UTC (rev 27007) @@ -42,19 +42,21 @@ MENU_OP_MINIMIZE = 1 << 2, MENU_OP_MINIMIZE_ALL = 1 << 3, MENU_OP_UNMINIMIZE = 1 << 4, - MENU_OP_SHADE = 1 << 5, - MENU_OP_UNSHADE = 1 << 6, - MENU_OP_STICK = 1 << 7, - MENU_OP_UNSTICK = 1 << 8, - MENU_OP_DELETE = 1 << 9, - MENU_OP_DESTROY = 1 << 10, - MENU_OP_WORKSPACES = 1 << 11, - MENU_OP_QUIT = 1 << 12, - MENU_OP_RESTART = 1 << 13, - MENU_OP_ABOVE = 1 << 14, - MENU_OP_NORMAL = 1 << 15, - MENU_OP_CONTEXT_HELP = 1 << 16, - MENU_OP_OTHER = 1 << 17 + MENU_OP_MOVE = 1 << 5, + MENU_OP_RESIZE = 1 << 6, + MENU_OP_SHADE = 1 << 7, + MENU_OP_UNSHADE = 1 << 8, + MENU_OP_STICK = 1 << 9, + MENU_OP_UNSTICK = 1 << 10, + MENU_OP_DELETE = 1 << 11, + MENU_OP_DESTROY = 1 << 12, + MENU_OP_WORKSPACES = 1 << 13, + MENU_OP_QUIT = 1 << 14, + MENU_OP_RESTART = 1 << 15, + MENU_OP_ABOVE = 1 << 16, + MENU_OP_NORMAL = 1 << 17, + MENU_OP_CONTEXT_HELP = 1 << 18, + MENU_OP_OTHER = 1 << 19 } MenuOp; Modified: xfwm4/trunk/src/moveresize.c =================================================================== --- xfwm4/trunk/src/moveresize.c 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/moveresize.c 2008-06-01 21:24:07 UTC (rev 27007) @@ -46,6 +46,12 @@ #include "event_filter.h" #include "xsync.h" +#define MOVERESIZE_EVENT_MASK \ + PointerMotionMask | \ + ButtonMotionMask | \ + ButtonReleaseMask | \ + LeaveWindowMask + typedef struct _MoveResizeData MoveResizeData; struct _MoveResizeData { @@ -56,12 +62,14 @@ gboolean move_resized; gboolean released; int button; - int cancel_x, cancel_y; /* for cancellation (either position or size) */ + int cancel_x, cancel_y; + int cancel_w, cancel_h; int cancel_workspace; int mx, my; int ox, oy; + int ow, oh; int oldw, oldh; - int corner; + int handle; Poswin *poswin; }; @@ -174,6 +182,79 @@ c->height = temp; } +static void +clientMovePointer (DisplayInfo *display_info, gint dx, gint dy, guint repeat) +{ + gint i; + for (i = 0; i < repeat; ++i) + { + XWarpPointer (display_info->dpy, None, None, 0, 0, 0, 0, dx, dy); + } +} + +static void +clientSetHandle(MoveResizeData *passdata, int handle) +{ + ScreenInfo *screen_info; + DisplayInfo *display_info; + Client *c; + int px, py; + + c = passdata->c; + screen_info = c->screen_info; + display_info = screen_info->display_info; + + switch (handle) + { + case CORNER_BOTTOM_LEFT: + px = frameX(c) + frameLeft(c) / 2; + py = frameY(c) + frameHeight(c) - frameBottom(c) / 2; + break; + case CORNER_BOTTOM_RIGHT: + px = frameX(c) + frameWidth(c) - frameRight(c) / 2; + py = frameY(c) + frameHeight(c) - frameBottom(c) / 2; + break; + case CORNER_TOP_LEFT: + px = frameX(c) + frameLeft(c) / 2; + py = frameY(c); + break; + case CORNER_TOP_RIGHT: + px = frameX(c) + frameWidth(c) - frameRight(c) / 2; + py = frameY(c); + break; + case CORNER_COUNT + SIDE_LEFT: + px = frameX(c) + frameLeft(c) / 2; + py = frameY(c) + frameHeight(c) / 2; + break; + case CORNER_COUNT + SIDE_RIGHT: + px = frameX(c) + frameWidth(c) - frameRight(c) / 2; + py = frameY(c) + frameHeight(c) / 2; + break; + case CORNER_COUNT + SIDE_TOP: + px = frameX(c) + frameWidth(c) / 2; + py = frameY(c); + break; + case CORNER_COUNT + SIDE_BOTTOM: + px = frameX(c) + frameWidth(c) / 2; + py = frameY(c) + frameHeight(c) - frameBottom(c) / 2; + break; + default: + px = frameX(c) + frameWidth(c) / 2; + py = frameY(c) + frameHeight(c) / 2; + break; + } + + XWarpPointer (display_info->dpy, None, screen_info->xroot, 0, 0, 0, 0, px, py); + /* Update internal data */ + passdata->handle = handle; + passdata->mx = px; + passdata->my = py; + passdata->ox = c->x; + passdata->oy = c->y; + passdata->ow = c->width; + passdata->oh = c->height; +} + /* clientConstrainRatio - adjust the given width and height to account for the constraints imposed by size hints @@ -182,7 +263,7 @@ #define MAKE_MULT(a,b) ((b==1) ? (a) : (((int)((a)/(b))) * (b)) ) void -clientConstrainRatio (Client * c, int *w, int *h, int corner) +clientConstrainRatio (Client * c, int *w, int *h, int handle) { g_return_if_fail (c != NULL); @@ -201,7 +282,7 @@ maxy = c->size->max_aspect.y; if ((minx * *h > miny * *w) && (miny) && - ((corner == CORNER_COUNT + SIDE_TOP) || (corner == CORNER_COUNT + SIDE_BOTTOM))) + ((handle == CORNER_COUNT + SIDE_TOP) || (handle == CORNER_COUNT + SIDE_BOTTOM))) { /* Change width to match */ delta = MAKE_MULT (minx * *h / miny - *w, xinc); @@ -229,7 +310,7 @@ } if ((maxx * *h < maxy * *w) && (maxx) && - ((corner == CORNER_COUNT + SIDE_LEFT) || (corner == CORNER_COUNT + SIDE_RIGHT))) + ((handle == CORNER_COUNT + SIDE_LEFT) || (handle == CORNER_COUNT + SIDE_RIGHT))) { delta = MAKE_MULT (*w * maxy / maxx - *h, yinc); if (!(c->size->flags & PMaxSize) || @@ -480,118 +561,37 @@ if (xevent->type == KeyPress) { + int key_move; + while (XCheckMaskEvent (display_info->dpy, KeyPressMask, xevent)) { /* Update the display time */ myDisplayUpdateCurrentTime (display_info, xevent); } - if ((passdata->use_keys) && !FLAG_TEST_ALL(c->flags, CLIENT_FLAG_MAXIMIZED)) + key_move = 16; + if ((screen_info->params->snap_to_border) || (screen_info->params->snap_to_windows)) { - int key_move = 16; - unsigned int edge; - int direction = 0; - - if ((screen_info->params->snap_to_border) || (screen_info->params->snap_to_windows)) - { - key_move = MAX (16, screen_info->params->snap_width + 1); - } - - if (!passdata->grab && screen_info->params->box_move) - { - myDisplayGrabServer (display_info); - passdata->grab = TRUE; - clientDrawOutline (c); - } - if (screen_info->params->box_move) - { - clientDrawOutline (c); - } - if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_LEFT].keycode) - { - direction = KEY_MOVE_LEFT; - c->x = c->x - key_move; - } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_RIGHT].keycode) - { - direction = KEY_MOVE_RIGHT; - c->x = c->x + key_move; - } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_UP].keycode) - { - direction = KEY_MOVE_UP; - c->y = c->y - key_move; - } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_DOWN].keycode) - { - direction = KEY_MOVE_DOWN; - c->y = c->y + key_move; - } - - clientSnapPosition (c, prev_x, prev_y); - edge = clientConstrainPos (c, FALSE); - if ((edge) && (screen_info->params->wrap_windows)) - { - int maxx, maxy, maxw, maxh; - - maxx = 0; - maxy = 0; - maxw = screen_info->width; - maxh = screen_info->height; - clientMaxSpace (screen_info, &maxx, &maxy, &maxw, &maxh); - - if ((edge & CLIENT_CONSTRAINED_TOP) && (direction == KEY_MOVE_UP)) - { - if (workspaceMove (screen_info, -1, 0, c, xevent->xkey.time)) - { - c->y = maxy + maxh; - } - } - else if ((edge & CLIENT_CONSTRAINED_BOTTOM) && (direction == KEY_MOVE_DOWN)) - { - if (workspaceMove (screen_info, 1, 0, c, xevent->xkey.time)) - { - c->y = maxy + frameTop (c); - } - } - - if ((edge & CLIENT_CONSTRAINED_LEFT) && (direction == KEY_MOVE_LEFT)) - { - if (workspaceMove (screen_info, 0, -1, c, xevent->xkey.time)) - { - c->x = maxx + maxw - frameWidth (c) + frameRight (c); - } - } - else if ((edge & CLIENT_CONSTRAINED_RIGHT) && (direction == KEY_MOVE_RIGHT)) - { - if (workspaceMove (screen_info, 0, 1, c, xevent->xkey.time)) - { - c->x = maxx + frameLeft (c); - } - } - } -#ifdef SHOW_POSITION - if (passdata->poswin) - { - poswinSetPosition (passdata->poswin, c); - } -#endif /* SHOW_POSITION */ - if (screen_info->params->box_move) - { - clientDrawOutline (c); - } - else - { - wc.x = c->x; - wc.y = c->y; - clientConfigure (c, &wc, CWX | CWY, configure_flags); - } + key_move = MAX (key_move, screen_info->params->snap_width + 1); } - } - else if (xevent->type == KeyRelease) - { - if (xevent->xkey.keycode == screen_info->params->keys[KEY_CANCEL].keycode) + if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_LEFT].keycode) { + clientMovePointer (display_info, -1, 0, key_move); + } + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_RIGHT].keycode) + { + clientMovePointer (display_info, 1, 0, key_move); + } + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_UP].keycode) + { + clientMovePointer (display_info, 0, -1, key_move); + } + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_DOWN].keycode) + { + clientMovePointer (display_info, 0, 1, key_move); + } + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_CANCEL].keycode) + { moving = FALSE; passdata->released = passdata->use_keys; @@ -625,25 +625,19 @@ passdata->move_resized = TRUE; } } - else if (passdata->use_keys) + else { - if (IsModifierKey (XLookupKeysym (&xevent->xkey, 0))) - { - moving = FALSE; - } + moving = FALSE; } } else if (xevent->type == ButtonRelease) { - if (!passdata->use_keys) - { - moving = FALSE; - passdata->released = (xevent->xbutton.button == passdata->button); - } + moving = FALSE; + passdata->released = passdata->use_keys || (xevent->xbutton.button == passdata->button); } else if (xevent->type == MotionNotify) { - while (XCheckMaskEvent (display_info->dpy, ButtonMotionMask, xevent)) + while (XCheckMaskEvent (display_info->dpy, PointerMotionMask | ButtonMotionMask, xevent)) { /* Update the display time */ myDisplayUpdateCurrentTime (display_info, xevent); @@ -907,31 +901,27 @@ passdata.use_keys = FALSE; passdata.grab = FALSE; passdata.released = FALSE; - passdata.button = ev->xbutton.button; + passdata.button = 0; passdata.is_transient = clientIsValidTransientOrModal (c); passdata.move_resized = FALSE; - if (ev->type == KeyPress) + if (ev && (ev->type == ButtonPress)) { - passdata.released = passdata.use_keys = TRUE; - passdata.mx = ev->xkey.x_root; - passdata.my = ev->xkey.y_root; - } - else if (ev->type == ButtonPress) - { + passdata.button = ev->xbutton.button; passdata.mx = ev->xbutton.x_root; passdata.my = ev->xbutton.y_root; } else { - getMouseXY (screen_info, screen_info->xroot, &passdata.mx, &passdata.my); + clientSetHandle(&passdata, NO_HANDLE); + passdata.released = passdata.use_keys = TRUE; } g1 = myScreenGrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info)); - g2 = myScreenGrabPointer (screen_info, ButtonMotionMask | ButtonReleaseMask | LeaveWindowMask, + g2 = myScreenGrabPointer (screen_info, MOVERESIZE_EVENT_MASK, myDisplayGetCursorMove (display_info), myDisplayGetCurrentTime (display_info)); - if ((passdata.use_keys && !g1) || (!g2)) + if (!g1 || !g2) { TRACE ("grab failed in clientMove"); @@ -949,7 +939,7 @@ poswinShow (passdata.poswin); #endif /* SHOW_POSITION */ - /* Set window translucent while moving, looks nice */ + /* Set window translucent while moving */ if ((screen_info->params->move_opacity < 100) && !(screen_info->params->box_move) && !FLAG_TEST (c->xfwm_flags, XFWM_FLAG_OPACITY_LOCKED)) @@ -966,10 +956,6 @@ FLAG_SET (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING); TRACE ("entering move loop"); eventFilterPush (display_info->xfilter, clientMoveEventFilter, &passdata); - if (passdata.use_keys) - { - XPutBackEvent (display_info->dpy, ev); - } gtk_main (); eventFilterPop (display_info->xfilter); TRACE ("leaving move loop"); @@ -1019,6 +1005,34 @@ } } +static gboolean +clientChangeHandle(MoveResizeData *passdata, int handle) +{ + ScreenInfo *screen_info; + DisplayInfo *display_info; + Client *c; + Cursor cursor; + gboolean grab; + + c = passdata->c; + screen_info = c->screen_info; + display_info = screen_info->display_info; + + clientSetHandle(passdata, handle); + if ((handle > NO_HANDLE) && (handle <= HANDLES_COUNT)) + { + cursor = myDisplayGetCursorResize (display_info, handle); + } + else + { + cursor = myDisplayGetCursorMove (display_info); + } + grab = myScreenChangeGrabPointer (screen_info, MOVERESIZE_EVENT_MASK, + cursor, myDisplayGetCurrentTime (display_info)); + + return (grab); +} + static void clientResizeConfigure (Client *c, int px, int py, int pw, int ph) { @@ -1112,21 +1126,21 @@ cx = frame_x + (frame_width / 2); cy = frame_y + (frame_height / 2); - move_top = ((passdata->corner == CORNER_TOP_RIGHT) - || (passdata->corner == CORNER_TOP_LEFT) - || (passdata->corner == CORNER_COUNT + SIDE_TOP)) ? + move_top = ((passdata->handle == CORNER_TOP_RIGHT) + || (passdata->handle == CORNER_TOP_LEFT) + || (passdata->handle == CORNER_COUNT + SIDE_TOP)) ? 1 : 0; - move_bottom = ((passdata->corner == CORNER_BOTTOM_RIGHT) - || (passdata->corner == CORNER_BOTTOM_LEFT) - || (passdata->corner == CORNER_COUNT + SIDE_BOTTOM)) ? + move_bottom = ((passdata->handle == CORNER_BOTTOM_RIGHT) + || (passdata->handle == CORNER_BOTTOM_LEFT) + || (passdata->handle == CORNER_COUNT + SIDE_BOTTOM)) ? 1 : 0; - move_right = ((passdata->corner == CORNER_TOP_RIGHT) - || (passdata->corner == CORNER_BOTTOM_RIGHT) - || (passdata->corner == CORNER_COUNT + SIDE_RIGHT)) ? + move_right = ((passdata->handle == CORNER_TOP_RIGHT) + || (passdata->handle == CORNER_BOTTOM_RIGHT) + || (passdata->handle == CORNER_COUNT + SIDE_RIGHT)) ? 1 : 0; - move_left = ((passdata->corner == CORNER_TOP_LEFT) - || (passdata->corner == CORNER_BOTTOM_LEFT) - || (passdata->corner == CORNER_COUNT + SIDE_LEFT)) ? + move_left = ((passdata->handle == CORNER_TOP_LEFT) + || (passdata->handle == CORNER_BOTTOM_LEFT) + || (passdata->handle == CORNER_COUNT + SIDE_LEFT)) ? 1 : 0; monitor_nbr = find_monitor_at_point (screen_info->gscr, cx, cy); @@ -1148,92 +1162,75 @@ if (xevent->type == KeyPress) { + int key_width_inc, key_height_inc; + while (XCheckMaskEvent (display_info->dpy, KeyPressMask, xevent)) { /* Update the display time */ myDisplayUpdateCurrentTime (display_info, xevent); } - if (passdata->use_keys) + key_width_inc = c->size->width_inc; + key_height_inc = c->size->height_inc; + + if (key_width_inc < 10) { - int key_width_inc, key_height_inc; - int corner = -1; + key_width_inc = ((int) (10 / key_width_inc)) * key_width_inc; + } + if (key_height_inc < 10) + { + key_height_inc = ((int) (10 / key_height_inc)) * key_height_inc; + } - key_width_inc = c->size->width_inc; - key_height_inc = c->size->height_inc; - - if (key_width_inc < 10) + if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_UP].keycode) + { + if ((passdata->handle == CORNER_COUNT + SIDE_BOTTOM) || + (passdata->handle == CORNER_COUNT + SIDE_TOP)) { - key_width_inc = ((int) (10 / key_width_inc)) * key_width_inc; + clientMovePointer (display_info, 0, -1, key_height_inc); } - if (key_height_inc < 10) + else { - key_height_inc = ((int) (10 / key_height_inc)) * key_height_inc; + clientChangeHandle (passdata, CORNER_COUNT + SIDE_TOP); } - if (!passdata->grab && screen_info->params->box_resize) + } + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_DOWN].keycode) + { + if ((passdata->handle == CORNER_COUNT + SIDE_BOTTOM) || + (passdata->handle == CORNER_COUNT + SIDE_TOP)) { - myDisplayGrabServer (display_info); - passdata->grab = TRUE; - clientDrawOutline (c); + clientMovePointer (display_info, 0, 1, key_height_inc); } - if (screen_info->params->box_resize) + else { - clientDrawOutline (c); + clientChangeHandle (passdata, CORNER_COUNT + SIDE_BOTTOM); } - - if (!FLAG_TEST (c->flags, CLIENT_FLAG_SHADED) - && (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_UP].keycode)) + } + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_LEFT].keycode) + { + if ((passdata->handle == CORNER_COUNT + SIDE_LEFT) || + (passdata->handle == CORNER_COUNT + SIDE_RIGHT)) { - c->height = c->height - key_height_inc; - corner = CORNER_COUNT + SIDE_BOTTOM; + clientMovePointer (display_info, -1, 0, key_width_inc); } - else if (!FLAG_TEST (c->flags, CLIENT_FLAG_SHADED) - && (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_DOWN].keycode)) + else { - c->height = c->height + key_height_inc; - corner = CORNER_COUNT + SIDE_BOTTOM; + clientChangeHandle (passdata, CORNER_COUNT + SIDE_LEFT); } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_LEFT].keycode) + } + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_RIGHT].keycode) + { + if ((passdata->handle == CORNER_COUNT + SIDE_LEFT) || + (passdata->handle == CORNER_COUNT + SIDE_RIGHT)) { - c->width = c->width - key_width_inc; - corner = CORNER_COUNT + SIDE_RIGHT; + clientMovePointer (display_info, 1, 0, key_width_inc); } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_RIGHT].keycode) - { - c->width = c->width + key_width_inc; - corner = CORNER_COUNT + SIDE_RIGHT; - } - if (corner >= 0) - { - clientConstrainRatio (c, &c->width, &c->height, corner); - } - if ((c->x + c->width < disp_x + min_visible) - || (c->x + c->width < screen_info->margins [STRUTS_LEFT] + min_visible)) - { - c->width = prev_width; - } - if ((c->y + c->height < disp_y + min_visible) - || (c->y + c->height < screen_info->margins [STRUTS_TOP] + min_visible)) - { - c->height = prev_height; - } - if (passdata->poswin) - { - poswinSetPosition (passdata->poswin, c); - } - if (screen_info->params->box_resize) - { - clientDrawOutline (c); - } else { - clientResizeConfigure (c, prev_x, prev_y, prev_width, prev_height); + clientChangeHandle (passdata, CORNER_COUNT + SIDE_RIGHT); } } - } - else if (xevent->type == KeyRelease) - { - if (xevent->xkey.keycode == screen_info->params->keys[KEY_CANCEL].keycode) + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_CANCEL].keycode) { resizing = FALSE; passdata->released = passdata->use_keys; @@ -1244,16 +1241,10 @@ } /* restore the pre-resize position & size */ - if (move_left) - { - c->x += c->width - passdata->cancel_x; - } - if (move_top) - { - c->y += c->height - passdata->cancel_y; - } - c->width = passdata->cancel_x; - c->height = passdata->cancel_y; + c->x = passdata->cancel_x; + c->y = passdata->cancel_y; + c->width = passdata->cancel_w; + c->height = passdata->cancel_h; if (screen_info->params->box_resize) { clientDrawOutline (c); @@ -1263,12 +1254,9 @@ clientResizeConfigure (c, prev_x, prev_y, prev_width, prev_height); } } - else if (passdata->use_keys) + else { - if (IsModifierKey (XLookupKeysym (&xevent->xkey, 0))) - { - resizing = FALSE; - } + resizing = FALSE; } } else if (xevent->type == MotionNotify) @@ -1298,24 +1286,24 @@ if (move_left) { - c->width = passdata->ox - (xevent->xmotion.x_root - passdata->mx); + c->width = passdata->ow - (xevent->xmotion.x_root - passdata->mx); } else if (move_right) { - c->width = passdata->ox + (xevent->xmotion.x_root - passdata->mx); + c->width = passdata->ow + (xevent->xmotion.x_root - passdata->mx); } if (!FLAG_TEST (c->flags, CLIENT_FLAG_SHADED)) { if (move_top) { - c->height = passdata->oy - (xevent->xmotion.y_root - passdata->my); + c->height = passdata->oh - (xevent->xmotion.y_root - passdata->my); } else if (move_bottom) { - c->height = passdata->oy + (xevent->xmotion.y_root - passdata->my); + c->height = passdata->oh + (xevent->xmotion.y_root - passdata->my); } } - clientConstrainRatio (c, &c->width, &c->height, passdata->corner); + clientConstrainRatio (c, &c->width, &c->height, passdata->handle); clientSetWidth (c, c->width); if (move_left) @@ -1393,11 +1381,8 @@ } else if (xevent->type == ButtonRelease) { - if (!passdata->use_keys) - { - resizing = FALSE; - passdata->released = (xevent->xbutton.button == passdata->button); - } + resizing = FALSE; + passdata->released = (passdata->use_keys || (xevent->xbutton.button == passdata->button)); } else if ((xevent->type == UnmapNotify) && (xevent->xunmap.window == c->window)) { @@ -1424,13 +1409,14 @@ } void -clientResize (Client * c, int corner, XEvent * ev) +clientResize (Client * c, int handle, XEvent * ev) { ScreenInfo *screen_info; DisplayInfo *display_info; XWindowChanges wc; MoveResizeData passdata; int w_orig, h_orig; + Cursor cursor; gboolean g1, g2; g_return_if_fail (c != NULL); @@ -1447,38 +1433,43 @@ } passdata.c = c; - passdata.cancel_x = passdata.ox = c->width; - passdata.cancel_y = passdata.oy = c->height; + passdata.cancel_x = passdata.ox = c->x; + passdata.cancel_y = passdata.oy = c->y; + passdata.cancel_w = passdata.ow = c->width; + passdata.cancel_h = passdata.oh = c->height; passdata.use_keys = FALSE; passdata.grab = FALSE; passdata.released = FALSE; - passdata.button = ev->xbutton.button; - passdata.corner = corner; + passdata.button = 0; + passdata.handle = handle; w_orig = c->width; h_orig = c->height; - if (ev->type == KeyPress) + if (ev && (ev->type == ButtonPress)) { + passdata.button = ev->xbutton.button; + passdata.mx = ev->xbutton.x_root; + passdata.my = ev->xbutton.y_root; + } + else + { + clientSetHandle (&passdata, handle); passdata.released = passdata.use_keys = TRUE; - passdata.mx = ev->xkey.x_root; - passdata.my = ev->xkey.y_root; } - else if (ev->type == ButtonPress) + if ((handle > NO_HANDLE) && (handle <= HANDLES_COUNT)) { - passdata.mx = ev->xbutton.x_root; - passdata.my = ev->xbutton.y_root; + cursor = myDisplayGetCursorResize (display_info, passdata.handle); } else { - getMouseXY (screen_info, screen_info->xroot, &passdata.mx, &passdata.my); + cursor = myDisplayGetCursorMove (display_info); } g1 = myScreenGrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info)); - g2 = myScreenGrabPointer (screen_info, ButtonMotionMask | ButtonReleaseMask | LeaveWindowMask, - myDisplayGetCursorResize(display_info, passdata.corner), - myDisplayGetCurrentTime (display_info)); + g2 = myScreenGrabPointer (screen_info, MOVERESIZE_EVENT_MASK, + cursor, myDisplayGetCurrentTime (display_info)); - if ((passdata.use_keys && !g1) || (!g2)) + if (!g1 || !g2) { TRACE ("grab failed in clientResize"); @@ -1503,7 +1494,7 @@ clientXSyncEnable (c); #endif /* HAVE_XSYNC */ - /* Set window translucent while resizing, doesn't looks too nice :( */ + /* Set window translucent while resizing */ if ((screen_info->params->resize_opacity < 100) && !(screen_info->params->box_resize) && !FLAG_TEST (c->xfwm_flags, XFWM_FLAG_OPACITY_LOCKED)) @@ -1514,10 +1505,6 @@ FLAG_SET (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING); TRACE ("entering resize loop"); eventFilterPush (display_info->xfilter, clientResizeEventFilter, &passdata); - if (passdata.use_keys) - { - XPutBackEvent (display_info->dpy, ev); - } gtk_main (); eventFilterPop (display_info->xfilter); TRACE ("leaving resize loop"); Modified: xfwm4/trunk/src/netwm.c =================================================================== --- xfwm4/trunk/src/netwm.c 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/netwm.c 2008-06-01 21:24:07 UTC (rev 27007) @@ -597,8 +597,8 @@ } else { - g_warning ("Could not determine the mouse button used"); - return; + /* Fallback */ + button = Button1; } } @@ -1126,7 +1126,7 @@ { ScreenInfo *screen_info; DisplayInfo *display_info; - Atom atoms[12]; + Atom atoms[16]; int i; g_return_if_fail (c != NULL); @@ -1137,11 +1137,29 @@ i = 0; atoms[i++] = display_info->atoms[NET_WM_ACTION_CLOSE]; - atoms[i++] = display_info->atoms[NET_WM_ACTION_FULLSCREEN]; - if (CLIENT_CAN_MAXIMIZE_WINDOW (c)) + atoms[i++] = display_info->atoms[NET_WM_ACTION_ABOVE]; + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_VISIBLE)) { - atoms[i++] = display_info->atoms[NET_WM_ACTION_MAXIMIZE_HORZ]; - atoms[i++] = display_info->atoms[NET_WM_ACTION_MAXIMIZE_VERT]; + atoms[i++] = display_info->atoms[NET_WM_ACTION_FULLSCREEN]; + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MOVE)) + { + atoms[i++] = display_info->atoms[NET_WM_ACTION_MOVE]; + } + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_RESIZE) && + !((FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) + && (screen_info->params->borderless_maximize)))) + { + atoms[i++] = display_info->atoms[NET_WM_ACTION_RESIZE]; + } + if (CLIENT_CAN_MAXIMIZE_WINDOW (c)) + { + atoms[i++] = display_info->atoms[NET_WM_ACTION_MAXIMIZE_HORZ]; + atoms[i++] = display_info->atoms[NET_WM_ACTION_MAXIMIZE_VERT]; + } + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)) + { + atoms[i++] = display_info->atoms[NET_WM_ACTION_SHADE]; + } } if (CLIENT_CAN_HIDE_WINDOW (c)) { @@ -1152,10 +1170,6 @@ atoms[i++] = display_info->atoms[NET_WM_ACTION_CHANGE_DESKTOP]; atoms[i++] = display_info->atoms[NET_WM_ACTION_STICK]; } - if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)) - { - atoms[i++] = display_info->atoms[NET_WM_ACTION_SHADE]; - } XChangeProperty (clientGetXDisplay (c), c->window, display_info->atoms[NET_WM_ALLOWED_ACTIONS], XA_ATOM, 32, PropModeReplace, (unsigned char *) atoms, i); } Modified: xfwm4/trunk/src/screen.c =================================================================== --- xfwm4/trunk/src/screen.c 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/screen.c 2008-06-01 21:24:07 UTC (rev 27007) @@ -438,6 +438,24 @@ return grab; } +gboolean +myScreenChangeGrabPointer (ScreenInfo *screen_info, unsigned int event_mask, Cursor cursor, Time time) +{ + gboolean grab; + + g_return_val_if_fail (screen_info, FALSE); + TRACE ("entering myScreenGrabPointer"); + + grab = FALSE; + if (screen_info->pointer_grabs > 0) + { + grab = (XChangeActivePointerGrab (myScreenGetXDisplay (screen_info), + event_mask, cursor, time) == GrabSuccess); + } + + return grab; +} + unsigned int myScreenUngrabKeyboard (ScreenInfo *screen_info, Time time) { Modified: xfwm4/trunk/src/screen.h =================================================================== --- xfwm4/trunk/src/screen.h 2008-06-01 18:03:37 UTC (rev 27006) +++ xfwm4/trunk/src/screen.h 2008-06-01 21:24:07 UTC (rev 27007) @@ -180,6 +180,10 @@ unsigned int, Cursor, Time); +gboolean myScreenChangeGrabPointer (ScreenInfo *, + unsigned int, + Cursor, + Time); unsigned int myScreenUngrabKeyboard (ScreenInfo *, Time); unsigned int myScreenUngrabPointer (ScreenInfo *, From olivier at xfce.org Mon Jun 2 22:22:45 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Mon, 2 Jun 2008 20:22:45 +0000 (UTC) Subject: [Xfce4-commits] r27008 - in xfwm4/trunk: mcs-plugin src Message-ID: <20080602202245.C31C9F29DD@mocha.foo-projects.org> Author: olivier Date: 2008-06-02 20:22:45 +0000 (Mon, 02 Jun 2008) New Revision: 27008 Modified: xfwm4/trunk/mcs-plugin/Makefile.am xfwm4/trunk/mcs-plugin/workspaces.c xfwm4/trunk/mcs-plugin/workspaces_plugin.c xfwm4/trunk/mcs-plugin/xfwm4_plugin.h xfwm4/trunk/mcs-plugin/xfwm4_shortcuteditor.c xfwm4/trunk/src/events.c xfwm4/trunk/src/moveresize.c xfwm4/trunk/src/screen.c xfwm4/trunk/src/settings.c xfwm4/trunk/src/settings.h Log: Change shortcuts to use the new move/resize system Modified: xfwm4/trunk/mcs-plugin/Makefile.am =================================================================== --- xfwm4/trunk/mcs-plugin/Makefile.am 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/mcs-plugin/Makefile.am 2008-06-02 20:22:45 UTC (rev 27008) @@ -70,6 +70,8 @@ $(LIBXFCE4MCS_MANAGER_CFLAGS) \ $(LIBXFCEGUI4_CFLAGS) \ $(XFCE_MCS_MANAGER_CFLAGS) \ + $(LIBWNCK_CFLAGS) \ + -DWNCK_I_KNOW_THIS_IS_UNSTABLE \ -I$(top_builddir)/common \ -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ -DSYSCONFDIR=\"$(sysconfdir)\" \ @@ -78,6 +80,7 @@ workspaces_plugin_la_LIBADD = \ $(LIBXFCEGUI4_LIBS) \ $(LIBXFCE4MCS_MANAGER_LIBS) \ + $(LIBWNCK_LIBS) \ $(LIBS) if HAVE_CYGWIN Modified: xfwm4/trunk/mcs-plugin/workspaces.c =================================================================== --- xfwm4/trunk/mcs-plugin/workspaces.c 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/mcs-plugin/workspaces.c 2008-06-02 20:22:45 UTC (rev 27008) @@ -38,6 +38,7 @@ #include #include +#include #include #include @@ -50,7 +51,7 @@ #define WS_SEP_S ";" static McsManager *mcs_manager; -static NetkScreen *netk_screen = NULL; +static WnckScreen *wnck_screen = NULL; static gulong ws_created_id = 0; static gulong ws_destroyed_id = 0; @@ -105,11 +106,11 @@ else { const char *name = NULL; - NetkWorkspace *ws = netk_screen_get_workspace (netk_screen, i); + WnckWorkspace *ws = wnck_screen_get_workspace (wnck_screen, i); if (ws) { - name = netk_workspace_get_name (ws); + name = wnck_workspace_get_name (ws); } if (name && strlen (name)) { @@ -140,8 +141,8 @@ mcs_manager = mcs_plugin->manager; - netk_screen = netk_screen_get_default (); - netk_screen_force_update (netk_screen); + wnck_screen = wnck_screen_get_default (); + wnck_screen_force_update (wnck_screen); ws_create_channel (mcs_manager, CHANNEL1, RCFILE1); @@ -154,7 +155,7 @@ } /* ws count */ - ws_count = netk_screen_get_workspace_count (netk_screen); + ws_count = wnck_screen_get_workspace_count (wnck_screen); setting = mcs_manager_setting_lookup (mcs_manager, "Xfwm/WorkspaceCount", CHANNEL1); @@ -535,9 +536,9 @@ /* watch for changes by other programs */ static void -update_channel (NetkScreen * screen, NetkWorkspace * ws, McsManager * manager) +update_channel (WnckScreen * screen, WnckWorkspace * ws, McsManager * manager) { - ws_count = netk_screen_get_workspace_count (screen); + ws_count = wnck_screen_get_workspace_count (screen); set_workspace_count (manager, ws_count, TRUE); } @@ -545,10 +546,10 @@ static void watch_workspaces_hint (McsManager * manager) { - ws_created_id = g_signal_connect (netk_screen, "workspace-created", + ws_created_id = g_signal_connect (wnck_screen, "workspace-created", G_CALLBACK (update_channel), manager); - ws_destroyed_id = g_signal_connect (netk_screen, "workspace-destroyed", + ws_destroyed_id = g_signal_connect (wnck_screen, "workspace-destroyed", G_CALLBACK (update_channel), manager); } @@ -557,8 +558,8 @@ { DBG ("Disconecting workspace signal handlers"); - g_signal_handler_disconnect (netk_screen, ws_created_id); - g_signal_handler_disconnect (netk_screen, ws_destroyed_id); + g_signal_handler_disconnect (wnck_screen, ws_created_id); + g_signal_handler_disconnect (wnck_screen, ws_destroyed_id); - g_object_unref (netk_screen); + g_object_unref (wnck_screen); } Modified: xfwm4/trunk/mcs-plugin/workspaces_plugin.c =================================================================== --- xfwm4/trunk/mcs-plugin/workspaces_plugin.c 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/mcs-plugin/workspaces_plugin.c 2008-06-02 20:22:45 UTC (rev 27008) @@ -35,6 +35,7 @@ #include #include +#include #include #include Modified: xfwm4/trunk/mcs-plugin/xfwm4_plugin.h =================================================================== --- xfwm4/trunk/mcs-plugin/xfwm4_plugin.h 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/mcs-plugin/xfwm4_plugin.h 2008-06-02 20:22:45 UTC (rev 27008) @@ -35,7 +35,7 @@ #define DEFAULT_THEME "Default" #define DEFAULT_KEY_THEME "Default" -#define DEFAULT_LAYOUT "O|HMC" +#define DEFAULT_LAYOUT "OT|SHMC" #define DEFAULT_ACTION "maximize" #define DEFAULT_ALIGN "center" #define DEFAULT_FONT "Sans Bold 9" Modified: xfwm4/trunk/mcs-plugin/xfwm4_shortcuteditor.c =================================================================== --- xfwm4/trunk/mcs-plugin/xfwm4_shortcuteditor.c 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/mcs-plugin/xfwm4_shortcuteditor.c 2008-06-02 20:22:45 UTC (rev 27008) @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -310,92 +311,86 @@ loadtheme_in_treeview (ThemeInfo * ti, gpointer data) { const gchar *shortcut_options_list[] = { + "popup_menu_key", + "up_key", + "down_key", + "left_key", + "right_key", + "cancel_key", + "cycle_windows_key", "close_window_key", - "maximize_window_key", - "maximize_vert_key", "maximize_horiz_key", - "fill_horiz_key", - "fill_vert_key", - "fill_window_key", + "maximize_vert_key", + "maximize_window_key", "hide_window_key", + "move_window_key", + "resize_window_key", "shade_window_key", "stick_window_key", - "cycle_windows_key", - "move_window_up_key", - "move_window_down_key", - "move_window_left_key", - "move_window_right_key", - "resize_window_up_key", - "resize_window_down_key", - "resize_window_left_key", - "resize_window_right_key", - "move_resize_cancel_key", "raise_window_key", "lower_window_key", + "fill_window_key", + "fill_horiz_key", + "fill_vert_key", "above_key", "fullscreen_key", + "move_window_up_workspace_key", + "move_window_down_workspace_key", + "move_window_left_workspace_key", + "move_window_right_workspace_key", + "move_window_prev_workspace_key", + "move_window_next_workspace_key", + "show_desktop_key", "up_workspace_key", "down_workspace_key", "left_workspace_key", "right_workspace_key", - "next_workspace_key", "prev_workspace_key", + "next_workspace_key", "add_workspace_key", "del_workspace_key", - "move_window_next_workspace_key", - "move_window_prev_workspace_key", - "move_window_up_workspace_key", - "move_window_down_workspace_key", - "move_window_left_workspace_key", - "move_window_right_workspace_key", - "show_desktop_key", - "cancel_key", - "popup_menu_key", NULL }; const gchar *shortcut_name_list[] = { + N_("Window operations menu"), + N_("Up"), + N_("Down"), + N_("Left"), + N_("Right"), + N_("Cancel"), + N_("Cycle windows"), N_("Close window"), - N_("Maximize window"), - N_("Maximize window vertically"), N_("Maximize window horizontally"), - N_("Fill window horizontally"), - N_("Fill window vertically"), - N_("Fill window"), + N_("Maximize window vertically"), + N_("Maximize window"), N_("Hide window"), + N_("Move window"), + N_("Resize window"), N_("Shade window"), N_("Stick window"), - N_("Cycle windows"), - N_("Move window up"), - N_("Move window down"), - N_("Move window left"), - N_("Move window right"), - N_("Resize window up"), - N_("Resize window down"), - N_("Resize window left"), - N_("Resize window right"), - N_("Cancel move/resize window"), N_("Raise window"), N_("Lower window"), + N_("Fill window"), + N_("Fill window horizontally"), + N_("Fill window vertically"), N_("Toggle above"), N_("Toggle fullscreen"), + N_("Move window to upper workspace"), + N_("Move window to bottom workspace"), + N_("Move window to left workspace"), + N_("Move window to right workspace"), + N_("Move window to previous workspace"), + N_("Move window to next workspace"), + N_("Show desktop"), N_("Upper workspace"), N_("Bottom workspace"), N_("Left workspace"), N_("Right workspace"), - N_("Next workspace"), N_("Previous workspace"), + N_("Next workspace"), N_("Add workspace"), N_("Delete workspace"), - N_("Move window to next workspace"), - N_("Move window to previous workspace"), - N_("Move window to upper workspace"), - N_("Move window to bottom workspace"), - N_("Move window to left workspace"), - N_("Move window to right workspace"), - N_("Show desktop"), - N_("Cancel window action"), - N_("Window operations menu"), NULL }; @@ -771,7 +766,7 @@ /* Apply change */ gtk_tree_selection_get_selected (selection, &model, &iter); - /* check if shorcut already exists */ + /* check if shortcut already exists */ stfs.shortcut = shortcut_string; stfs.found = FALSE; Modified: xfwm4/trunk/src/events.c =================================================================== --- xfwm4/trunk/src/events.c 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/src/events.c 2008-06-02 20:22:45 UTC (rev 27008) @@ -365,16 +365,10 @@ switch (key) { - case KEY_MOVE_UP: - case KEY_MOVE_DOWN: - case KEY_MOVE_LEFT: - case KEY_MOVE_RIGHT: + case KEY_MOVE: moveRequest (c, (XEvent *) ev); break; - case KEY_RESIZE_UP: - case KEY_RESIZE_DOWN: - case KEY_RESIZE_LEFT: - case KEY_RESIZE_RIGHT: + case KEY_RESIZE: if (FLAG_TEST_ALL (c->xfwm_flags, XFWM_FLAG_HAS_RESIZE | XFWM_FLAG_IS_RESIZABLE)) { clientResize (c, CORNER_BOTTOM_RIGHT, (XEvent *) ev); Modified: xfwm4/trunk/src/moveresize.c =================================================================== --- xfwm4/trunk/src/moveresize.c 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/src/moveresize.c 2008-06-02 20:22:45 UTC (rev 27008) @@ -574,19 +574,19 @@ { key_move = MAX (key_move, screen_info->params->snap_width + 1); } - if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_LEFT].keycode) + if (xevent->xkey.keycode == screen_info->params->keys[KEY_LEFT].keycode) { clientMovePointer (display_info, -1, 0, key_move); } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_RIGHT].keycode) + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_RIGHT].keycode) { clientMovePointer (display_info, 1, 0, key_move); } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_UP].keycode) + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_UP].keycode) { clientMovePointer (display_info, 0, -1, key_move); } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_DOWN].keycode) + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_DOWN].keycode) { clientMovePointer (display_info, 0, 1, key_move); } @@ -1182,7 +1182,7 @@ key_height_inc = ((int) (10 / key_height_inc)) * key_height_inc; } - if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_UP].keycode) + if (xevent->xkey.keycode == screen_info->params->keys[KEY_UP].keycode) { if ((passdata->handle == CORNER_COUNT + SIDE_BOTTOM) || (passdata->handle == CORNER_COUNT + SIDE_TOP)) @@ -1194,7 +1194,7 @@ clientChangeHandle (passdata, CORNER_COUNT + SIDE_TOP); } } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_DOWN].keycode) + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_DOWN].keycode) { if ((passdata->handle == CORNER_COUNT + SIDE_BOTTOM) || (passdata->handle == CORNER_COUNT + SIDE_TOP)) @@ -1206,7 +1206,7 @@ clientChangeHandle (passdata, CORNER_COUNT + SIDE_BOTTOM); } } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_LEFT].keycode) + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_LEFT].keycode) { if ((passdata->handle == CORNER_COUNT + SIDE_LEFT) || (passdata->handle == CORNER_COUNT + SIDE_RIGHT)) @@ -1218,7 +1218,7 @@ clientChangeHandle (passdata, CORNER_COUNT + SIDE_LEFT); } } - else if (xevent->xkey.keycode == screen_info->params->keys[KEY_MOVE_RIGHT].keycode) + else if (xevent->xkey.keycode == screen_info->params->keys[KEY_RIGHT].keycode) { if ((passdata->handle == CORNER_COUNT + SIDE_LEFT) || (passdata->handle == CORNER_COUNT + SIDE_RIGHT)) Modified: xfwm4/trunk/src/screen.c =================================================================== --- xfwm4/trunk/src/screen.c 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/src/screen.c 2008-06-02 20:22:45 UTC (rev 27008) @@ -507,16 +507,6 @@ dpy = myScreenGetXDisplay (screen_info); - /* - Ugly hack: KEY_CANCEL is used just for cancelling window ops - it should not be grabbed all the time (especially when you - realize that it's mapped to Esc by default, damn, I can't - switch back to command mode in vi anymore, I'm stuck in - edition mode ;) - - That's why we start at FIRST_KEY which is defined after - KEY_CANCEL... - */ for (i = FIRST_KEY; i < KEY_COUNT; i++) { grabKey (dpy, &screen_info->params->keys[i], screen_info->xroot); Modified: xfwm4/trunk/src/settings.c =================================================================== --- xfwm4/trunk/src/settings.c 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/src/settings.c 2008-06-02 20:22:45 UTC (rev 27008) @@ -1260,9 +1260,13 @@ } } + parseKeyString (dpy, &screen_info->params->keys[KEY_CANCEL], getValue ("cancel_key", rc)); + parseKeyString (dpy, &screen_info->params->keys[KEY_DOWN], getValue ("down_key", rc)); + parseKeyString (dpy, &screen_info->params->keys[KEY_LEFT], getValue ("left_key", rc)); + parseKeyString (dpy, &screen_info->params->keys[KEY_RIGHT], getValue ("right_key", rc)); + parseKeyString (dpy, &screen_info->params->keys[KEY_UP], getValue ("up_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_ADD_WORKSPACE], getValue ("add_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_ADD_ADJACENT_WORKSPACE], getValue ("add_adjacent_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)); @@ -1274,27 +1278,21 @@ parseKeyString (dpy, &screen_info->params->keys[KEY_HIDE_WINDOW], getValue ("hide_window_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_LEFT_WORKSPACE], getValue ("left_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_LOWER_WINDOW], getValue ("lower_window_key", rc)); + parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE], getValue ("move_window_key", rc)); 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_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)); parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_LEFT_WORKSPACE], getValue ("move_window_left_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_NEXT_WORKSPACE], getValue ("move_window_next_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_PREV_WORKSPACE], getValue ("move_window_prev_workspace_key", rc)); - parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_RIGHT], getValue ("move_window_right_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_RIGHT_WORKSPACE], getValue ("move_window_right_workspace_key", rc)); - parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_UP], getValue ("move_window_up_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_MOVE_UP_WORKSPACE], getValue ("move_window_up_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_NEXT_WORKSPACE], getValue ("next_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_POPUP_MENU], getValue ("popup_menu_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_PREV_WORKSPACE], getValue ("prev_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_RAISE_WINDOW], getValue ("raise_window_key", rc)); - parseKeyString (dpy, &screen_info->params->keys[KEY_RESIZE_DOWN], getValue ("resize_window_down_key", rc)); - parseKeyString (dpy, &screen_info->params->keys[KEY_RESIZE_LEFT], getValue ("resize_window_left_key", rc)); - parseKeyString (dpy, &screen_info->params->keys[KEY_RESIZE_RIGHT], getValue ("resize_window_right_key", rc)); - parseKeyString (dpy, &screen_info->params->keys[KEY_RESIZE_UP], getValue ("resize_window_up_key", rc)); + parseKeyString (dpy, &screen_info->params->keys[KEY_RESIZE], getValue ("resize_window_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_RIGHT_WORKSPACE], getValue ("right_workspace_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_SHADE_WINDOW], getValue ("shade_window_key", rc)); parseKeyString (dpy, &screen_info->params->keys[KEY_SHOW_DESKTOP], getValue("show_desktop_key", rc)); @@ -1416,31 +1414,32 @@ {"wrap_workspaces", NULL, TRUE}, /* Keys */ {"above_key", NULL, TRUE}, - {"add_workspace_key", NULL, TRUE}, {"add_adjacent_workspace_key", NULL, TRUE}, + {"add_workspace_key", NULL, TRUE}, {"cancel_key", NULL, TRUE}, {"close_window_key", NULL, TRUE}, {"cycle_windows_key", NULL, TRUE}, - {"del_workspace_key", NULL, TRUE}, {"del_active_workspace_key", NULL, TRUE}, + {"del_workspace_key", NULL, TRUE}, + {"down_key", NULL, TRUE}, {"down_workspace_key", NULL, TRUE}, + {"fill_horiz_key", NULL, TRUE}, + {"fill_vert_key", NULL, TRUE}, + {"fill_window_key", NULL, TRUE}, {"fullscreen_key", NULL, TRUE}, {"hide_window_key", NULL, TRUE}, + {"left_key", NULL, TRUE}, {"left_workspace_key", NULL, TRUE}, {"lower_window_key", NULL, TRUE}, {"maximize_horiz_key", NULL, TRUE}, {"maximize_vert_key", NULL, TRUE}, {"maximize_window_key", NULL, TRUE}, - {"move_window_down_key", NULL, TRUE}, {"move_window_down_workspace_key", NULL, TRUE}, - {"move_window_left_key", NULL, TRUE}, {"move_window_left_workspace_key", NULL, TRUE}, {"move_window_next_workspace_key", NULL, TRUE}, + {"move_window_key", NULL, TRUE}, {"move_window_prev_workspace_key", NULL, TRUE}, - {"popup_menu_key", NULL, TRUE}, - {"move_window_right_key", NULL, TRUE}, {"move_window_right_workspace_key", NULL, TRUE}, - {"move_window_up_key", NULL, TRUE}, {"move_window_up_workspace_key", NULL, TRUE}, {"move_window_workspace_1_key", NULL, TRUE}, {"move_window_workspace_2_key", NULL, TRUE}, @@ -1455,16 +1454,16 @@ {"move_window_workspace_11_key", NULL, TRUE}, {"move_window_workspace_12_key", NULL, TRUE}, {"next_workspace_key", NULL, TRUE}, + {"popup_menu_key", NULL, TRUE}, {"prev_workspace_key", NULL, TRUE}, {"raise_window_key", NULL, TRUE}, - {"resize_window_down_key", NULL, TRUE}, - {"resize_window_left_key", NULL, TRUE}, - {"resize_window_right_key", NULL, TRUE}, - {"resize_window_up_key", NULL, TRUE}, + {"resize_window_key", NULL, TRUE}, + {"right_key", NULL, TRUE}, {"right_workspace_key", NULL, TRUE}, {"shade_window_key", NULL, TRUE}, {"show_desktop_key", NULL, FALSE}, {"stick_window_key", NULL, TRUE}, + {"up_key", NULL, TRUE}, {"up_workspace_key", NULL, TRUE}, {"workspace_1_key", NULL, TRUE}, {"workspace_2_key", NULL, TRUE}, @@ -1478,9 +1477,6 @@ {"workspace_10_key", NULL, TRUE}, {"workspace_11_key", NULL, TRUE}, {"workspace_12_key", NULL, TRUE}, - {"fill_horiz_key", NULL, TRUE}, - {"fill_vert_key", NULL, TRUE}, - {"fill_window_key", NULL, TRUE}, {NULL, NULL, FALSE} }; Modified: xfwm4/trunk/src/settings.h =================================================================== --- xfwm4/trunk/src/settings.h 2008-06-01 21:24:07 UTC (rev 27007) +++ xfwm4/trunk/src/settings.h 2008-06-02 20:22:45 UTC (rev 27008) @@ -42,10 +42,16 @@ TITLE_SHADOW_FRAME = 2 }; +/** All key definition prior to FIRST_KEY are not grabbed continuously */ #define FIRST_KEY KEY_ADD_ADJACENT_WORKSPACE enum { KEY_CANCEL = 0, + KEY_DOWN, + KEY_LEFT, + KEY_RIGHT, + KEY_UP, + /* FIRST_KEY starts here */ KEY_ADD_ADJACENT_WORKSPACE, KEY_ADD_WORKSPACE, KEY_CLOSE_WINDOW, @@ -62,15 +68,12 @@ KEY_MAXIMIZE_HORIZ, KEY_MAXIMIZE_VERT, KEY_MAXIMIZE_WINDOW, - KEY_MOVE_DOWN, + KEY_MOVE, KEY_MOVE_DOWN_WORKSPACE, - KEY_MOVE_LEFT, KEY_MOVE_LEFT_WORKSPACE, KEY_MOVE_NEXT_WORKSPACE, KEY_MOVE_PREV_WORKSPACE, - KEY_MOVE_RIGHT, KEY_MOVE_RIGHT_WORKSPACE, - KEY_MOVE_UP, KEY_MOVE_UP_WORKSPACE, KEY_MOVE_WORKSPACE_1, KEY_MOVE_WORKSPACE_10, @@ -88,10 +91,7 @@ KEY_POPUP_MENU, KEY_PREV_WORKSPACE, KEY_RAISE_WINDOW, - KEY_RESIZE_DOWN, - KEY_RESIZE_LEFT, - KEY_RESIZE_RIGHT, - KEY_RESIZE_UP, + KEY_RESIZE, KEY_RIGHT_WORKSPACE, KEY_SHADE_WINDOW, KEY_SHOW_DESKTOP, From olivier at xfce.org Mon Jun 2 22:23:20 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Mon, 2 Jun 2008 20:23:20 +0000 (UTC) Subject: [Xfce4-commits] r27009 - xfwm4/trunk/themes/default.keys Message-ID: <20080602202320.B9FABF29DD@mocha.foo-projects.org> Author: olivier Date: 2008-06-02 20:23:20 +0000 (Mon, 02 Jun 2008) New Revision: 27009 Modified: xfwm4/trunk/themes/default.keys/keythemerc Log: Update default keytheme accordingly Modified: xfwm4/trunk/themes/default.keys/keythemerc =================================================================== --- xfwm4/trunk/themes/default.keys/keythemerc 2008-06-02 20:22:45 UTC (rev 27008) +++ xfwm4/trunk/themes/default.keys/keythemerc 2008-06-02 20:23:20 UTC (rev 27009) @@ -2,6 +2,10 @@ add_workspace_key=Alt+Insert add_adjacent_workspace_key=None cancel_key=Escape +left_key=Left +right_key=Right +up_key=Up +down_key=Down close_window_key=Alt+F4 cycle_windows_key=Alt+Tab del_workspace_key=Alt+Delete @@ -11,13 +15,13 @@ fill_vert_key=None fill_window_key=None fullscreen_key=Alt+F11 -hide_window_key=Alt+F8 +hide_window_key=Alt+F9 left_workspace_key=Control+Alt+Left lower_window_key=Shift+Alt+Page_Down -maximize_horiz_key=Alt+F7 -maximize_vert_key=Alt+F6 -maximize_window_key=Alt+F5 -move_window_down_key=Control+Shift+Alt+Down +maximize_horiz_key=None +maximize_vert_key=None +maximize_window_key=Alt+F10 +move_window_key=Alt+F7 move_window_down_workspace_key=None move_window_left_key=Control+Shift+Alt+Left move_window_left_workspace_key=None @@ -43,10 +47,7 @@ popup_menu_key=Alt+space prev_workspace_key=None raise_window_key=Shift+Alt+Page_Up -resize_window_down_key=Shift+Alt+Down -resize_window_left_key=Shift+Alt+Left -resize_window_right_key=Shift+Alt+Right -resize_window_up_key=Shift+Alt+Up +resize_window_key=Alt+F8 right_workspace_key=Control+Alt+Right shade_window_key=Alt+F9 show_desktop_key=Control+Alt+d From olivier at xfce.org Mon Jun 2 22:26:08 2008 From: olivier at xfce.org (Olivier Fourdan) Date: Mon, 2 Jun 2008 20:26:08 +0000 (UTC) Subject: [Xfce4-commits] r27010 - in xfwm4/trunk/themes: . default default-4.4 Message-ID: <20080602202608.4A861F29DD@mocha.foo-projects.org> Author: olivier Date: 2008-06-02 20:26:07 +0000 (Mon, 02 Jun 2008) New Revision: 27010 Added: xfwm4/trunk/themes/default/menu-prelight.svg xfwm4/trunk/themes/default/menu-prelight.xpm xfwm4/trunk/themes/default/menu-pressed.svg xfwm4/trunk/themes/default/menu-pressed.xpm Removed: xfwm4/trunk/themes/default/menu-prelight.png xfwm4/trunk/themes/default/menu-prelight.svg xfwm4/trunk/themes/default/menu-prelight.xpm xfwm4/trunk/themes/default/menu-pressed.png xfwm4/trunk/themes/default/menu-pressed.svg xfwm4/trunk/themes/default/menu-pressed.xpm Modified: xfwm4/trunk/themes/Makefile.am xfwm4/trunk/themes/default-4.4/top-right-inactive.svg xfwm4/trunk/themes/default/Makefile.am xfwm4/trunk/themes/default/bottom-active.png xfwm4/trunk/themes/default/bottom-active.svg xfwm4/trunk/themes/default/bottom-active.xpm xfwm4/trunk/themes/default/bottom-inactive.png xfwm4/trunk/themes/default/bottom-inactive.svg xfwm4/trunk/themes/default/bottom-inactive.xpm xfwm4/trunk/themes/default/bottom-left-active.png xfwm4/trunk/themes/default/bottom-left-active.svg xfwm4/trunk/themes/default/bottom-left-active.xpm xfwm4/trunk/themes/default/bottom-left-inactive.png xfwm4/trunk/themes/default/bottom-left-inactive.svg xfwm4/trunk/themes/default/bottom-left-inactive.xpm xfwm4/trunk/themes/default/bottom-right-active.png xfwm4/trunk/themes/default/bottom-right-active.svg xfwm4/trunk/themes/default/bottom-right-active.xpm xfwm4/trunk/themes/default/bottom-right-inactive.png xfwm4/trunk/themes/default/bottom-right-inactive.svg xfwm4/trunk/themes/default/bottom-right-inactive.xpm xfwm4/trunk/themes/default/close-active.png xfwm4/trunk/themes/default/close-active.svg xfwm4/trunk/themes/default/close-active.xpm xfwm4/trunk/themes/default/close-inactive.png xfwm4/trunk/themes/default/close-inactive.svg xfwm4/trunk/themes/default/close-inactive.xpm xfwm4/trunk/themes/default/close-prelight.png xfwm4/trunk/themes/default/close-prelight.svg xfwm4/trunk/themes/default/close-prelight.xpm xfwm4/trunk/themes/default/close-pressed.png xfwm4/trunk/themes/default/close-pressed.svg xfwm4/trunk/themes/default/close-pressed.xpm xfwm4/trunk/themes/default/hide-active.png xfwm4/trunk/themes/default/hide-active.svg xfwm4/trunk/themes/default/hide-active.xpm xfwm4/trunk/themes/default/hide-inactive.png xfwm4/trunk/themes/default/hide-inactive.svg xfwm4/trunk/themes/default/hide-inactive.xpm xfwm4/trunk/themes/default/hide-prelight.png xfwm4/trunk/themes/default/hide-prelight.svg xfwm4/trunk/themes/default/hide-prelight.xpm xfwm4/trunk/themes/default/hide-pressed.png xfwm4/trunk/themes/default/hide-pressed.svg xfwm4/trunk/themes/default/hide-pressed.xpm xfwm4/trunk/themes/default/left-active.png xfwm4/trunk/themes/default/left-active.svg xfwm4/trunk/themes/default/left-active.xpm xfwm4/trunk/themes/default/left-inactive.png xfwm4/trunk/themes/default/left-inactive.svg xfwm4/trunk/themes/default/left-inactive.xpm xfwm4/trunk/themes/default/maximize-active.png xfwm4/trunk/themes/default/maximize-active.svg xfwm4/trunk/themes/default/maximize-active.xpm xfwm4/trunk/themes/default/maximize-inactive.png xfwm4/trunk/themes/default/maximize-inactive.svg xfwm4/trunk/themes/default/maximize-inactive.xpm xfwm4/trunk/themes/default/maximize-prelight.png xfwm4/trunk/themes/default/maximize-prelight.svg xfwm4/trunk/themes/default/maximize-prelight.xpm xfwm4/trunk/themes/default/maximize-pressed.png xfwm4/trunk/themes/default/maximize-pressed.svg xfwm4/trunk/themes/default/maximize-pressed.xpm xfwm4/trunk/themes/default/maximize-toggled-active.png xfwm4/trunk/themes/default/maximize-toggled-active.svg xfwm4/trunk/themes/default/maximize-toggled-active.xpm xfwm4/trunk/themes/default/maximize-toggled-inactive.png xfwm4/trunk/themes/default/maximize-toggled-inactive.svg xfwm4/trunk/themes/default/maximize-toggled-inactive.xpm xfwm4/trunk/themes/default/maximize-toggled-prelight.png xfwm4/trunk/themes/default/maximize-toggled-prelight.svg xfwm4/trunk/themes/default/maximize-toggled-prelight.xpm xfwm4/trunk/themes/default/maximize-toggled-pressed.png xfwm4/trunk/themes/default/maximize-toggled-pressed.svg xfwm4/trunk/themes/default/maximize-toggled-pressed.xpm xfwm4/trunk/themes/default/menu-active.png xfwm4/trunk/themes/default/menu-active.svg xfwm4/trunk/themes/default/menu-active.xpm xfwm4/trunk/themes/default/menu-inactive.png xfwm4/trunk/themes/default/menu-inactive.svg xfwm4/trunk/themes/default/menu-inactive.xpm xfwm4/trunk/themes/default/right-active.png xfwm4/trunk/themes/default/right-active.svg xfwm4/trunk/themes/default/right-active.xpm xfwm4/trunk/themes/default/right-inactive.png xfwm4/trunk/themes/default/right-inactive.svg xfwm4/trunk/themes/default/right-inactive.xpm xfwm4/trunk/themes/default/shade-active.png xfwm4/trunk/themes/default/shade-active.svg xfwm4/trunk/themes/default/shade-active.xpm xfwm4/trunk/themes/default/shade-inactive.png xfwm4/trunk/themes/default/shade-inactive.svg xfwm4/trunk/themes/default/shade-inactive.xpm xfwm4/trunk/themes/default/shade-prelight.png xfwm4/trunk/themes/default/shade-prelight.svg xfwm4/trunk/themes/default/shade-prelight.xpm xfwm4/trunk/themes/default/shade-pressed.png xfwm4/trunk/themes/default/shade-pressed.svg xfwm4/trunk/themes/default/shade-pressed.xpm xfwm4/trunk/themes/default/shade-toggled-active.png xfwm4/trunk/themes/default/shade-toggled-active.svg xfwm4/trunk/themes/default/shade-toggled-active.xpm xfwm4/trunk/themes/default/shade-toggled-inactive.png xfwm4/trunk/themes/default/shade-toggled-inactive.svg xfwm4/trunk/themes/default/shade-toggled-inactive.xpm xfwm4/trunk/themes/default/shade-toggled-prelight.png xfwm4/trunk/themes/default/shade-toggled-prelight.svg xfwm4/trunk/themes/default/shade-toggled-prelight.xpm xfwm4/trunk/themes/default/shade-toggled-pressed.png xfwm4/trunk/themes/default/shade-toggled-pressed.svg xfwm4/trunk/themes/default/shade-toggled-pressed.xpm xfwm4/trunk/themes/default/stick-active.png xfwm4/trunk/themes/default/stick-active.svg xfwm4/trunk/themes/default/stick-active.xpm xfwm4/trunk/themes/default/stick-inactive.png xfwm4/trunk/themes/default/stick-inactive.svg xfwm4/trunk/themes/default/stick-inactive.xpm xfwm4/trunk/themes/default/stick-prelight.png xfwm4/trunk/themes/default/stick-prelight.svg xfwm4/trunk/themes/default/stick-prelight.xpm xfwm4/trunk/themes/default/stick-pressed.png xfwm4/trunk/themes/default/stick-pressed.svg xfwm4/trunk/themes/default/stick-pressed.xpm xfwm4/trunk/themes/default/stick-toggled-active.png xfwm4/trunk/themes/default/stick-toggled-active.svg xfwm4/trunk/themes/default/stick-toggled-active.xpm xfwm4/trunk/themes/default/stick-toggled-inactive.png xfwm4/trunk/themes/default/stick-toggled-inactive.svg xfwm4/trunk/themes/default/stick-toggled-inactive.xpm xfwm4/trunk/themes/default/stick-toggled-prelight.png xfwm4/trunk/themes/default/stick-toggled-prelight.svg xfwm4/trunk/themes/default/stick-toggled-prelight.xpm xfwm4/trunk/themes/default/stick-toggled-pressed.png xfwm4/trunk/themes/default/stick-toggled-pressed.svg xfwm4/trunk/themes/default/stick-toggled-pressed.xpm xfwm4/trunk/themes/default/themerc xfwm4/trunk/themes/default/title-1-active.png xfwm4/trunk/themes/default/title-1-active.svg xfwm4/trunk/themes/default/title-1-active.xpm xfwm4/trunk/themes/default/title-1-inactive.png xfwm4/trunk/themes/default/title-1-inactive.svg xfwm4/trunk/themes/default/title-1-inactive.xpm xfwm4/trunk/themes/default/title-2-active.png xfwm4/trunk/themes/default/title-2-active.svg xfwm4/trunk/themes/default/title-2-active.xpm xfwm4/trunk/themes/default/title-2-inactive.png xfwm4/trunk/themes/default/title-2-inactive.svg xfwm4/trunk/themes/default/title-2-inactive.xpm xfwm4/trunk/themes/default/title-3-active.png xfwm4/trunk/themes/default/title-3-active.svg xfwm4/trunk/themes/default/title-3-active.xpm xfwm4/trunk/themes/default/title-3-inactive.png xfwm4/trunk/themes/default/title-3-inactive.svg xfwm4/trunk/themes/default/title-3-inactive.xpm xfwm4/trunk/themes/default/title-4-active.png xfwm4/trunk/themes/default/title-4-active.svg xfwm4/trunk/themes/default/title-4-active.xpm xfwm4/trunk/themes/default/title-4-inactive.png xfwm4/trunk/themes/default/title-4-inactive.svg xfwm4/trunk/themes/default/title-4-inactive.xpm xfwm4/trunk/themes/default/title-5-active.png xfwm4/trunk/themes/default/title-5-active.svg xfwm4/trunk/themes/default/title-5-active.xpm xfwm4/trunk/themes/default/title-5-inactive.png xfwm4/trunk/themes/default/title-5-inactive.svg xfwm4/trunk/themes/default/title-5-inactive.xpm xfwm4/trunk/themes/default/top-left-active.png xfwm4/trunk/themes/default/top-left-active.svg xfwm4/trunk/themes/default/top-left-active.xpm xfwm4/trunk/themes/default/top-left-inactive.png xfwm4/trunk/themes/default/top-left-inactive.svg xfwm4/trunk/themes/default/top-left-inactive.xpm xfwm4/trunk/themes/default/top-right-active.png xfwm4/trunk/themes/default/top-right-active.svg xfwm4/trunk/themes/default/top-right-active.xpm xfwm4/trunk/themes/default/top-right-inactive.png xfwm4/trunk/themes/default/top-right-inactive.svg xfwm4/trunk/themes/default/top-right-inactive.xpm Log: Change theme Modified: xfwm4/trunk/themes/Makefile.am =================================================================== --- xfwm4/trunk/themes/Makefile.am 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/Makefile.am 2008-06-02 20:26:07 UTC (rev 27010) @@ -8,6 +8,7 @@ default-4.0 \ default-4.2 \ default-4.4 \ + kokodi \ moheli \ sassandra \ stoneage \ Modified: xfwm4/trunk/themes/default/Makefile.am =================================================================== --- xfwm4/trunk/themes/default/Makefile.am 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/Makefile.am 2008-06-02 20:26:07 UTC (rev 27010) @@ -9,45 +9,45 @@ bottom-right-inactive.png \ close-active.png \ close-inactive.png \ + close-prelight.png \ close-pressed.png \ - close-prelight.png \ hide-active.png \ hide-inactive.png \ + hide-prelight.png \ hide-pressed.png \ hide-pressed.png \ - hide-prelight.png \ left-active.png \ left-inactive.png \ maximize-active.png \ maximize-inactive.png \ + maximize-prelight.png \ maximize-pressed.png \ - maximize-prelight.png \ maximize-toggled-active.png \ maximize-toggled-inactive.png \ + maximize-toggled-prelight.png \ maximize-toggled-pressed.png \ - maximize-toggled-prelight.png \ menu-active.png \ menu-inactive.png \ + menu-prelight.png \ menu-pressed.png \ - menu-prelight.png \ right-active.png \ right-inactive.png \ shade-active.png \ shade-inactive.png \ + shade-prelight.png \ shade-pressed.png \ - shade-prelight.png \ shade-toggled-active.png \ shade-toggled-inactive.png \ + shade-toggled-prelight.png \ shade-toggled-pressed.png \ - shade-toggled-prelight.png \ stick-active.png \ stick-inactive.png \ + stick-prelight.png \ stick-pressed.png \ - stick-prelight.png \ stick-toggled-active.png \ stick-toggled-inactive.png \ + stick-toggled-prelight.png \ stick-toggled-pressed.png \ - stick-toggled-prelight.png \ title-1-active.png \ title-1-inactive.png \ title-2-active.png \ @@ -72,44 +72,44 @@ bottom-right-inactive.svg \ close-active.svg \ close-inactive.svg \ + close-prelight.svg \ close-pressed.svg \ - close-prelight.svg \ hide-active.svg \ hide-inactive.svg \ + hide-prelight.svg \ hide-pressed.svg \ - hide-prelight.svg \ left-active.svg \ left-inactive.svg \ maximize-active.svg \ maximize-inactive.svg \ + maximize-prelight.svg \ maximize-pressed.svg \ - maximize-prelight.svg \ maximize-toggled-active.svg \ maximize-toggled-inactive.svg \ + maximize-toggled-prelight.svg \ maximize-toggled-pressed.svg \ - maximize-toggled-prelight.svg \ menu-active.svg \ menu-inactive.svg \ + menu-prelight.svg \ menu-pressed.svg \ - menu-prelight.svg \ right-active.svg \ right-inactive.svg \ shade-active.svg \ shade-inactive.svg \ + shade-prelight.svg \ shade-pressed.svg \ - shade-prelight.svg \ shade-toggled-active.svg \ shade-toggled-inactive.svg \ + shade-toggled-prelight.svg \ shade-toggled-pressed.svg \ - shade-toggled-prelight.svg \ stick-active.svg \ stick-inactive.svg \ + stick-prelight.svg \ stick-pressed.svg \ - stick-prelight.svg \ stick-toggled-active.svg \ stick-toggled-inactive.svg \ + stick-toggled-prelight.svg \ stick-toggled-pressed.svg \ - stick-toggled-prelight.svg \ title-1-active.svg \ title-1-inactive.svg \ title-2-active.svg \ @@ -134,44 +134,44 @@ bottom-right-inactive.xpm \ close-active.xpm \ close-inactive.xpm \ + close-prelight.xpm \ close-pressed.xpm \ - close-prelight.xpm \ hide-active.xpm \ hide-inactive.xpm \ + hide-prelight.xpm \ hide-pressed.xpm \ - hide-prelight.xpm \ left-active.xpm \ left-inactive.xpm \ maximize-active.xpm \ maximize-inactive.xpm \ + maximize-prelight.xpm \ maximize-pressed.xpm \ - maximize-prelight.xpm \ maximize-toggled-active.xpm \ maximize-toggled-inactive.xpm \ + maximize-toggled-prelight.xpm \ maximize-toggled-pressed.xpm \ - maximize-toggled-prelight.xpm \ menu-active.xpm \ menu-inactive.xpm \ + menu-prelight.xpm \ menu-pressed.xpm \ - menu-prelight.xpm \ right-active.xpm \ right-inactive.xpm \ shade-active.xpm \ shade-inactive.xpm \ + shade-prelight.xpm \ shade-pressed.xpm \ - shade-prelight.xpm \ shade-toggled-active.xpm \ shade-toggled-inactive.xpm \ + shade-toggled-prelight.xpm \ shade-toggled-pressed.xpm \ - shade-toggled-prelight.xpm \ stick-active.xpm \ stick-inactive.xpm \ + stick-prelight.xpm \ stick-pressed.xpm \ - stick-prelight.xpm \ stick-toggled-active.xpm \ stick-toggled-inactive.xpm \ + stick-toggled-prelight.xpm \ stick-toggled-pressed.xpm \ - stick-toggled-prelight.xpm \ title-1-active.xpm \ title-1-inactive.xpm \ title-2-active.xpm \ Modified: xfwm4/trunk/themes/default/bottom-active.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/bottom-active.svg =================================================================== --- xfwm4/trunk/themes/default/bottom-active.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-active.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,7 +2,7 @@ + + + Modified: xfwm4/trunk/themes/default/bottom-active.xpm =================================================================== --- xfwm4/trunk/themes/default/bottom-active.xpm 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-active.xpm 2008-06-02 20:26:07 UTC (rev 27010) @@ -6,7 +6,7 @@ "@ c #C0C0FF s active_color_1", "########################", "########################", -"########################", -"########################", "@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@"}; Modified: xfwm4/trunk/themes/default/bottom-inactive.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/bottom-inactive.svg =================================================================== --- xfwm4/trunk/themes/default/bottom-inactive.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-inactive.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,7 +2,7 @@ + + + Modified: xfwm4/trunk/themes/default/bottom-inactive.xpm =================================================================== --- xfwm4/trunk/themes/default/bottom-inactive.xpm 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-inactive.xpm 2008-06-02 20:26:07 UTC (rev 27010) @@ -6,7 +6,7 @@ "@ c #C0C0FF s inactive_color_1", "########################", "########################", -"########################", -"########################", "@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@"}; Modified: xfwm4/trunk/themes/default/bottom-left-active.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/bottom-left-active.svg =================================================================== --- xfwm4/trunk/themes/default/bottom-left-active.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-left-active.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,7 +2,7 @@ + + + Modified: xfwm4/trunk/themes/default/bottom-left-active.xpm =================================================================== --- xfwm4/trunk/themes/default/bottom-left-active.xpm 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-left-active.xpm 2008-06-02 20:26:07 UTC (rev 27010) @@ -4,19 +4,19 @@ " c None", "# c #C0C0C0 s active_color_2", "@ c #C0C0FF s active_color_1", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@##############", -"@@##############", -"@@##############", -"@@##############", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@############", +"@@@@############", "@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", " @@@@@@@@@@@@@@@"}; Modified: xfwm4/trunk/themes/default/bottom-left-inactive.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/bottom-left-inactive.svg =================================================================== --- xfwm4/trunk/themes/default/bottom-left-inactive.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-left-inactive.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,7 +2,7 @@ + + + Modified: xfwm4/trunk/themes/default/bottom-left-inactive.xpm =================================================================== --- xfwm4/trunk/themes/default/bottom-left-inactive.xpm 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-left-inactive.xpm 2008-06-02 20:26:07 UTC (rev 27010) @@ -4,19 +4,19 @@ " c None", "# c #C0C0C0 s inactive_color_2", "@ c #C0C0FF s inactive_color_1", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@#### ", -"@@##############", -"@@##############", -"@@##############", -"@@##############", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@## ", +"@@@@############", +"@@@@############", "@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", " @@@@@@@@@@@@@@@"}; Modified: xfwm4/trunk/themes/default/bottom-right-active.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/bottom-right-active.svg =================================================================== --- xfwm4/trunk/themes/default/bottom-right-active.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-right-active.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,7 +2,7 @@ + + + Modified: xfwm4/trunk/themes/default/bottom-right-active.xpm =================================================================== --- xfwm4/trunk/themes/default/bottom-right-active.xpm 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-right-active.xpm 2008-06-02 20:26:07 UTC (rev 27010) @@ -4,19 +4,19 @@ " c None", "# c #C0C0C0 s active_color_2", "@ c #C0C0FF s active_color_1", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -"##############@@", -"##############@@", -"##############@@", -"##############@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +"############@@@@", +"############@@@@", "@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@ "}; Modified: xfwm4/trunk/themes/default/bottom-right-inactive.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/bottom-right-inactive.svg =================================================================== --- xfwm4/trunk/themes/default/bottom-right-inactive.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-right-inactive.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,7 +2,7 @@ + + + Modified: xfwm4/trunk/themes/default/bottom-right-inactive.xpm =================================================================== --- xfwm4/trunk/themes/default/bottom-right-inactive.xpm 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/bottom-right-inactive.xpm 2008-06-02 20:26:07 UTC (rev 27010) @@ -4,19 +4,19 @@ " c None", "# c #C0C0C0 s inactive_color_2", "@ c #C0C0FF s inactive_color_1", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -" ####@@", -"##############@@", -"##############@@", -"##############@@", -"##############@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +" ##@@@@", +"############@@@@", +"############@@@@", "@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@ "}; Modified: xfwm4/trunk/themes/default/close-active.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/close-active.svg =================================================================== --- xfwm4/trunk/themes/default/close-active.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/close-active.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,116 +2,73 @@ + id="linearGradient3143"> + id="stop3145" /> + id="stop3147" /> - - - - - + style="stop-color:#ffffff;stop-opacity:0.90;" /> + id="stop5850" + offset="0.70" + style="stop-color:#ffffff;stop-opacity:0.10;" /> + style="stop-color:#ffffff;stop-opacity:0;" /> - + spreadMethod="none" /> - - + showguides="true"> + + @@ -152,86 +121,72 @@ + style="fill:none;fill-opacity:0.50;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.50" + d="M 0.5,0.5 L 17.5,0.5" + id="path6059" /> - + id="layer2" + inkscape:label="Grad" + style="display:inline"> - - + id="layer3" + inkscape:label="hilight"> + + style="fill:none;fill-opacity:0;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.25" + d="M 0,1.5 L 18,1.5" + id="path6061" /> + id="g2328" + transform="translate(3,7)"> + style="fill:none;fill-opacity:0.50;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-opacity:0.50;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - - - Modified: xfwm4/trunk/themes/default/close-active.xpm =================================================================== --- xfwm4/trunk/themes/default/close-active.xpm 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/close-active.xpm 2008-06-02 20:26:07 UTC (rev 27010) @@ -1,32 +1,29 @@ /* XPM */ static char * close_active_xpm[] = { -"24 27 2 1", +"18 24 2 1", " c None", ". c #C0C0FF s active_color_1", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................", -"........................"}; +" ", +" ", +" ", +" ", +" ................ ", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +"..................", +" ................ ", +" ", +" "}; Modified: xfwm4/trunk/themes/default/close-inactive.png =================================================================== (Binary files differ) Modified: xfwm4/trunk/themes/default/close-inactive.svg =================================================================== --- xfwm4/trunk/themes/default/close-inactive.svg 2008-06-02 20:23:20 UTC (rev 27009) +++ xfwm4/trunk/themes/default/close-inactive.svg 2008-06-02 20:26:07 UTC (rev 27010) @@ -2,98 +2,73 @@