rpms/libwnck/devel libwnck-2.19.3-viewport.patch, NONE, 1.1 .cvsignore, 1.45, 1.46 libwnck.spec, 1.69, 1.70 sources, 1.45, 1.46 libwnck-2.19.2-viewport.patch, 1.1, NONE
Bastien Nocera (hadess)
fedora-extras-commits at redhat.com
Mon Jun 4 19:02:19 UTC 2007
Author: hadess
Update of /cvs/pkgs/rpms/libwnck/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28576
Modified Files:
.cvsignore libwnck.spec sources
Added Files:
libwnck-2.19.3-viewport.patch
Removed Files:
libwnck-2.19.2-viewport.patch
Log Message:
* Mon Jun 04 2007 - Bastien Nocera <bnocera at redhat.com> - 2.19.3-1
- Update to 2.19.3
- Update viewport patch
libwnck-2.19.3-viewport.patch:
--- NEW FILE libwnck-2.19.3-viewport.patch ---
--- libwnck-2.19.3/libwnck/window-action-menu.c.viewport 2007-06-04 19:41:50.000000000 +0100
+++ libwnck-2.19.3/libwnck/window-action-menu.c 2007-06-04 19:56:49.000000000 +0100
@@ -46,7 +46,13 @@ typedef enum
RIGHT,
UP,
DOWN,
- MOVE_TO_WORKSPACE
+ MOVE_TO_WORKSPACE,
+ STICK,
+ VIEWPORT_LEFT,
+ VIEWPORT_RIGHT,
+ VIEWPORT_UP,
+ VIEWPORT_DOWN,
+ MOVE_TO_VIEWPORT
} WindowAction;
typedef struct _ActionMenuData ActionMenuData;
@@ -74,6 +80,13 @@ struct _ActionMenuData
GtkWidget *up_item;
GtkWidget *down_item;
GtkWidget *workspace_item;
+ GtkWidget *viewport_separator;
+ GtkWidget *stick_item;
+ GtkWidget *viewport_left_item;
+ GtkWidget *viewport_right_item;
+ GtkWidget *viewport_up_item;
+ GtkWidget *viewport_down_item;
+ GtkWidget *viewport_item;
guint idle_handler;
};
@@ -260,6 +273,86 @@ item_activated_callback (GtkWidget *menu
workspace_index));
break;
}
+ case STICK:
+ if (wnck_window_is_sticky (amd->window))
+ wnck_window_unstick (amd->window);
+ else
+ wnck_window_stick (amd->window);
+ break;
+ case VIEWPORT_LEFT:
+ {
+ int width, xw, yw, ww, hw;
+
+ width = wnck_screen_get_width (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, &ww, &hw);
+ wnck_window_set_geometry (amd->window, 0,
+ WNCK_WINDOW_CHANGE_X|WNCK_WINDOW_CHANGE_Y,
+ xw - width, yw,
+ ww, hw);
+ break;
+ }
+ case VIEWPORT_RIGHT:
+ {
+ int width, xw, yw, ww, hw;
+
+ width = wnck_screen_get_width (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, &ww, &hw);
+ wnck_window_set_geometry (amd->window, 0,
+ WNCK_WINDOW_CHANGE_X|WNCK_WINDOW_CHANGE_Y,
+ xw + width, yw,
+ ww, hw);
+ break;
+ }
+ case VIEWPORT_UP:
+ {
+ int height, xw, yw, ww, hw;
+
+ height = wnck_screen_get_height (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, &ww, &hw);
+ wnck_window_set_geometry (amd->window, 0,
+ WNCK_WINDOW_CHANGE_X|WNCK_WINDOW_CHANGE_Y,
+ xw, yw - height,
+ ww, hw);
+ break;
+ }
+ case VIEWPORT_DOWN:
+ {
+ int height, xw, yw, ww, hw;
+
+ height = wnck_screen_get_height (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, &ww, &hw);
+ wnck_window_set_geometry (amd->window, 0,
+ WNCK_WINDOW_CHANGE_X|WNCK_WINDOW_CHANGE_Y,
+ xw, yw + height,
+ ww, hw);
+ break;
+ }
+ case MOVE_TO_VIEWPORT:
+ {
+ WnckWorkspace *workspace;
+ int viewport_x, viewport_y, xw, yw, x, y, width, height;
+
+ workspace = wnck_window_get_workspace (amd->window);
+ if (!workspace)
+ break;
+ viewport_x = wnck_workspace_get_viewport_x (workspace);
+ viewport_y = wnck_workspace_get_viewport_y (workspace);
+
+ x = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), "x"));
+ y = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), "y"));
+
+ wnck_window_get_geometry (amd->window, &xw, &yw, &width, &height);
+
+ if (wnck_window_is_sticky (amd->window))
+ wnck_window_unstick (amd->window);
+
+ wnck_window_set_geometry (amd->window, 0,
+ WNCK_WINDOW_CHANGE_X|WNCK_WINDOW_CHANGE_Y,
+ xw + x - viewport_x,
+ yw + y - viewport_y,
+ width, height);
+ break;
+ }
}
}
@@ -440,6 +533,56 @@ update_menu_state (ActionMenuData *amd)
gtk_widget_show (amd->unpin_item);
gtk_widget_hide (amd->workspace_item);
}
+
+ if (wnck_window_is_sticky (amd->window))
+ {
+ set_item_text (amd->stick_item, _("_Only on This Workspace"));
+ set_item_stock (amd->stick_item, NULL);
+ gtk_widget_set_sensitive (amd->stick_item,
+ (actions & WNCK_WINDOW_ACTION_STICK) != 0);
+ }
+ else
+ {
+ set_item_text (amd->stick_item, _("_Always on Visible Workspace"));
+ set_item_stock (amd->stick_item, NULL);
+ gtk_widget_set_sensitive (amd->stick_item,
+ (actions & WNCK_WINDOW_ACTION_STICK) != 0);
+ }
+
+ if (!wnck_window_is_sticky (amd->window))
+ {
+ if (amd->viewport_item)
+ gtk_widget_set_sensitive (amd->viewport_item,
+ (actions & WNCK_WINDOW_ACTION_MOVE) != 0);
+
+ if (amd->viewport_left_item)
+ gtk_widget_set_sensitive (amd->viewport_left_item,
+ (actions & WNCK_WINDOW_ACTION_MOVE) != 0);
+
+ if (amd->viewport_right_item)
+ gtk_widget_set_sensitive (amd->viewport_right_item,
+ (actions & WNCK_WINDOW_ACTION_MOVE) != 0);
+
+ if (amd->viewport_up_item)
+ gtk_widget_set_sensitive (amd->viewport_up_item,
+ (actions & WNCK_WINDOW_ACTION_MOVE) != 0);
+
+ if (amd->viewport_down_item)
+ gtk_widget_set_sensitive (amd->viewport_down_item,
+ (actions & WNCK_WINDOW_ACTION_MOVE) != 0);
+ }
+ if (wnck_workspace_is_virtual (wnck_screen_get_active_workspace (screen)))
+ {
+ gtk_widget_show (amd->viewport_separator);
+ gtk_widget_show (amd->stick_item);
+ gtk_widget_show (amd->viewport_item);
+ }
+ else
+ {
+ gtk_widget_hide (amd->viewport_separator);
+ gtk_widget_hide (amd->stick_item);
+ gtk_widget_hide (amd->viewport_item);
+ }
return FALSE;
}
@@ -632,6 +775,10 @@ wnck_create_window_action_menu (WnckWind
int num_workspaces, present_workspace, i;
WnckWorkspace *workspace;
WnckWorkspaceLayout layout;
+ int viewport_x, viewport_y, viewport_width, viewport_height;
+ int screen_width, screen_height;
+ int x, y;
+
GSList *pin_group;
_wnck_stock_icons_init ();
@@ -792,6 +939,115 @@ wnck_create_window_action_menu (WnckWind
g_free (label);
}
+ amd->viewport_separator = separator = gtk_separator_menu_item_new ();
+ gtk_widget_show (separator);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ separator);
+
+ amd->stick_item = make_menu_item (amd, STICK);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ amd->stick_item);
+ set_item_stock (amd->stick_item, NULL);
+
+ if (wnck_window_is_pinned (amd->window))
+ workspace = wnck_screen_get_active_workspace (wnck_window_get_screen (amd->window));
+ else
+ workspace = wnck_window_get_workspace (amd->window);
+ if (!workspace)
+ goto bail;
+
+ viewport_x = wnck_workspace_get_viewport_x (workspace);
+ viewport_y = wnck_workspace_get_viewport_y (workspace);
+ viewport_width = wnck_workspace_get_width (workspace);
+ viewport_height = wnck_workspace_get_height (workspace);
+
+ screen_width = wnck_screen_get_width (wnck_window_get_screen (amd->window));
+ screen_height = wnck_screen_get_height (wnck_window_get_screen (amd->window));
+
+ if (!wnck_window_is_sticky (amd->window))
+ {
+ if (viewport_x >= screen_width)
+ {
+ amd->viewport_left_item = make_menu_item (amd, VIEWPORT_LEFT);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ amd->viewport_left_item);
+ set_item_text (amd->viewport_left_item, _("Move to Workspace _Left"));
+ set_item_stock (amd->viewport_left_item, NULL);
+ }
+ else
+ amd->viewport_left_item = NULL;
+
+ if (viewport_x <= viewport_width - 2 * screen_width)
+ {
+ amd->viewport_right_item = make_menu_item (amd, VIEWPORT_RIGHT);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ amd->viewport_right_item);
+ set_item_text (amd->viewport_right_item, _("Move to Workspace R_ight"));
+ set_item_stock (amd->viewport_right_item, NULL);
+ }
+ else
+ amd->viewport_right_item = NULL;
+
+ if (viewport_y >= screen_height)
+ {
+ amd->viewport_up_item = make_menu_item (amd, VIEWPORT_UP);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ amd->viewport_up_item);
+ set_item_text (amd->viewport_up_item, _("Move to Workspace _Up"));
+ set_item_stock (amd->viewport_up_item, NULL);
+ }
+ else
+ amd->viewport_up_item = NULL;
+
+ if (viewport_y <= viewport_height - 2 * screen_height)
+ {
+ amd->viewport_down_item = make_menu_item (amd, VIEWPORT_DOWN);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ amd->viewport_down_item);
+ set_item_text (amd->viewport_down_item, _("Move to Workspace _Down"));
+ set_item_stock (amd->viewport_down_item, NULL);
+ }
+ else
+ amd->viewport_down_item = NULL;
+
+ amd->viewport_item = gtk_menu_item_new_with_mnemonic (_("Move to Another _Workspace"));
+ gtk_widget_show (amd->viewport_item);
+
+ submenu = gtk_menu_new ();
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->viewport_item),
+ submenu);
+
+ i = 1;
+ for (y = 0; y < viewport_height; y += screen_height)
+ {
+ char *label;
+ GtkWidget *item;
+
+ for (x = 0; x < viewport_width; x += screen_width)
+ {
+ label = g_strdup_printf (_("Workspace _%d"), i++);
+
+ item = make_menu_item (amd, MOVE_TO_VIEWPORT);
+ g_object_set_data (G_OBJECT (item), "x", GINT_TO_POINTER (x));
+ g_object_set_data (G_OBJECT (item), "y", GINT_TO_POINTER (y));
+
+ if (x == viewport_x && y == viewport_y)
+ gtk_widget_set_sensitive (item, FALSE);
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item);
+ set_item_text (item, label);
+ set_item_stock (item, NULL);
+
+ g_free (label);
+ }
+ }
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu),
+ amd->viewport_item);
+ }
+
+ bail:
+
if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
"_NET_WM_WINDOW_OPACITY"))
{
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/libwnck/devel/.cvsignore,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- .cvsignore 20 May 2007 01:54:50 -0000 1.45
+++ .cvsignore 4 Jun 2007 19:01:15 -0000 1.46
@@ -1 +1 @@
-libwnck-2.19.2.tar.bz2
+libwnck-2.19.3.tar.bz2
Index: libwnck.spec
===================================================================
RCS file: /cvs/pkgs/rpms/libwnck/devel/libwnck.spec,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- libwnck.spec 20 May 2007 01:54:50 -0000 1.69
+++ libwnck.spec 4 Jun 2007 19:01:15 -0000 1.70
@@ -5,7 +5,7 @@
Summary: Window Navigator Construction Kit
Name: libwnck
-Version: 2.19.2
+Version: 2.19.3
Release: 1%{?dist}
URL: http://download.gnome.org/sources/libwnck/
Source0: http://download.gnome.org/sources/libwnck/2.19/%{name}-%{version}.tar.bz2
@@ -29,7 +29,7 @@
# make the pager visible when running compiz
Patch1: libwnck-2.16.0-viewports.patch
Patch3: libwnck-2.19.2-appearance.patch
-Patch4: libwnck-2.19.2-viewport.patch
+Patch4: libwnck-2.19.3-viewport.patch
Patch5: libwnck-2.18.0-above.patch
%description
@@ -101,6 +101,10 @@
%{_datadir}/gtk-doc/html/libwnck
%changelog
+* Mon Jun 04 2007 - Bastien Nocera <bnocera at redhat.com> - 2.19.3-1
+- Update to 2.19.3
+- Update viewport patch
+
* Sat May 19 2007 Matthias Clasen <mclasen at redhat.com> - 2.19.2-1
- Update to 2.19.2
- Update patches
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/libwnck/devel/sources,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- sources 20 May 2007 01:54:50 -0000 1.45
+++ sources 4 Jun 2007 19:01:15 -0000 1.46
@@ -1 +1 @@
-6f69efaf57b8cf76d772af4a2f4ad4b2 libwnck-2.19.2.tar.bz2
+3a01f5c79027a5cfb126a639b6f89792 libwnck-2.19.3.tar.bz2
--- libwnck-2.19.2-viewport.patch DELETED ---
More information about the fedora-extras-commits
mailing list