OBS User unknown 2007-11-19 09:25:47 +00:00 committed by Git OBS Bridge
parent 28baafa40e
commit 7695271fae
3 changed files with 13 additions and 346 deletions

View File

@ -1,338 +0,0 @@
Only in .: config.h
Only in .: config.log
Only in .: config.status
Only in ./doc: Makefile
Only in .: intltool-extract
Only in .: intltool-merge
Only in .: intltool-update
Only in .: libtool
Only in ./libwnck: application.lo
Only in ./libwnck: application.o
Only in ./libwnck: class-group.lo
Only in ./libwnck: class-group.o
Only in ./libwnck: .deps
Only in ./libwnck: .libs
Only in ./libwnck: libwnck-1.la
Only in ./libwnck: Makefile
Only in ./libwnck: pager-accessible-factory.lo
Only in ./libwnck: pager-accessible-factory.o
Only in ./libwnck: pager-accessible.lo
Only in ./libwnck: pager-accessible.o
Only in ./libwnck: pager.lo
Only in ./libwnck: pager.o
Only in ./libwnck: screen.lo
Only in ./libwnck: screen.o
Only in ./libwnck: selector.lo
Only in ./libwnck: selector.o
Only in ./libwnck: stamp-wnck-enum-types.h
Only in ./libwnck: stamp-wnck-marshal.h
Only in ./libwnck: tasklist.lo
Only in ./libwnck: tasklist.o
Only in ./libwnck: test-pager
Only in ./libwnck: test-pager.o
Only in ./libwnck: test-selector
Only in ./libwnck: test-selector.o
Only in ./libwnck: test-tasklist
Only in ./libwnck: test-tasklist.o
Only in ./libwnck: test-wnck
Only in ./libwnck: test-wnck.o
Only in ./libwnck: util.lo
Only in ./libwnck: util.o
Index: libwnck/window-action-menu.c
===================================================================
--- libwnck/window-action-menu.c.orig
+++ libwnck/window-action-menu.c
@@ -56,7 +56,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;
@@ -80,6 +86,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;
};
@@ -331,8 +344,74 @@ item_activated_callback (GtkWidget *menu
ww, hw);
}
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;
+
+ width = wnck_screen_get_width (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL);
+ wnck_window_move (amd->window, xw - width, yw);
+ break;
+ }
+ case VIEWPORT_RIGHT:
+ {
+ int width, xw, yw;
+
+ width = wnck_screen_get_width (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL);
+ wnck_window_move (amd->window, xw + width, yw);
+ break;
+ }
+ case VIEWPORT_UP:
+ {
+ int height, xw, yw;
+
+ height = wnck_screen_get_height (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL);
+ wnck_window_move (amd->window, xw, yw - height);
+ break;
+ }
+ case VIEWPORT_DOWN:
+ {
+ int height, xw, yw;
+
+ height = wnck_screen_get_height (wnck_window_get_screen (amd->window));
+ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL);
+ wnck_window_move (amd->window, xw, yw + height);
+ break;
+ }
+ case MOVE_TO_VIEWPORT:
+ {
+ WnckWorkspace *workspace;
+ int viewport_x, viewport_y, xw, yw, x, y;
+
+ workspace = wnck_window_get_workspace (amd->window);
+ if (!workspace)
+ workspace = wnck_screen_get_workspace (wnck_window_get_screen (amd->window), 0);
+ 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, NULL, NULL);
+
+ if (wnck_window_is_sticky (amd->window))
+ wnck_window_unstick (amd->window);
+
+ wnck_window_move (amd->window,
+ xw + x - viewport_x,
+ yw + y - viewport_y);
+ break;
+ }
default:
- g_assert_not_reached ();
+ g_assert_not_reached ();
}
}
@@ -601,6 +680,58 @@ update_menu_state (ActionMenuData *amd)
gtk_menu_popdown (GTK_MENU (gtk_menu_item_get_submenu (GTK_MENU_ITEM (amd->workspace_item))));
}
+ if (wnck_window_is_sticky (amd->window))
+ {
+ set_item_text (amd->stick_item, _("_Only in This Viewport"));
+ 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 in Visible Viewport"));
+ 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);
+ }
+
+
+
gtk_menu_reposition (GTK_MENU (amd->menu));
return FALSE;
@@ -970,6 +1101,12 @@ wnck_create_window_action_menu (WnckWind
GtkWidget *separator;
GSList *pin_group;
WnckScreen *screen;
+ WnckWorkspace *workspace;
+ int i;
+
+ int viewport_x, viewport_y, viewport_width, viewport_height;
+ int screen_width, screen_height;
+ int x, y;
g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL);
@@ -1070,9 +1207,113 @@ wnck_create_window_action_menu (WnckWind
gtk_menu_shell_append (GTK_MENU_SHELL (menu),
amd->workspace_item);
- if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
- "_NET_WM_WINDOW_OPACITY"))
- {
+ 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);
+
+ workspace = wnck_window_get_workspace (amd->window);
+ if (!workspace)
+ workspace = wnck_screen_get_workspace (wnck_window_get_screen (amd->window), 0);
+
+ 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 Viewport _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 Viewport 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 Viewport _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 Viewport _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 _Viewport"));
+ 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 (_("Viewport _%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);
+
+ if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window),
+ "_NET_WM_WINDOW_OPACITY"))
+ {
guint present_opacity;
gint j;

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Nov 15 01:11:50 CET 2007 - jpr@suse.de
- Remove libwnck-viewport-2.patch, it was obsoleted by a different
upstream patch
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Sep 18 18:01:05 CEST 2007 - sbrabec@suse.cz Tue Sep 18 18:01:05 CEST 2007 - sbrabec@suse.cz

View File

@ -12,10 +12,10 @@
Name: libwnck Name: libwnck
BuildRequires: fdupes gnome-common gtk-doc gtk2-devel intltool licenses perl-XML-Parser update-desktop-files BuildRequires: fdupes gnome-common gtk-doc gtk2-devel intltool licenses perl-XML-Parser update-desktop-files
License: LGPL v2 or later License: LGPL v2.1 or later
Group: Development/Libraries/GNOME Group: Development/Libraries/GNOME
Version: 2.20.0 Version: 2.20.0
Release: 1 Release: 19
# WARNING: After changing versions please call Re or rpmbuild to auto-update spec file: # WARNING: After changing versions please call Re or rpmbuild to auto-update spec file:
#%(sh %{_sourcedir}/%{name}_spec-update.sh %{_sourcedir} %{name} libwnck-1) #%(sh %{_sourcedir}/%{name}_spec-update.sh %{_sourcedir} %{name} libwnck-1)
%define libwnck-1_name 22 %define libwnck-1_name 22
@ -25,8 +25,6 @@ Source1: %{name}_spec-update.sh
Patch4: libwnck-2.12.2-window-move-1.patch Patch4: libwnck-2.12.2-window-move-1.patch
Patch8: libwnck-realistic-layout.patch Patch8: libwnck-realistic-layout.patch
Patch9: libwnck-opacity-2.patch Patch9: libwnck-opacity-2.patch
# FIXME: someone should re-review this patch
Patch10: libwnck-viewport-2.patch
Patch11: libwnck-border_width-fix-2.patch Patch11: libwnck-border_width-fix-2.patch
Requires: libwnck-1-22 = %{version} licenses Requires: libwnck-1-22 = %{version} licenses
Requires: %{name}-lang = %{version} Requires: %{name}-lang = %{version}
@ -59,7 +57,7 @@ Authors:
Havoc Pennington <hp@redhat.com> Havoc Pennington <hp@redhat.com>
%package devel %package devel
Summary: Include Files and Libraries mandatory for Development. Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries/GNOME Group: Development/Libraries/GNOME
Requires: %{name} = %{version} gtk2-devel Requires: %{name} = %{version} gtk2-devel
@ -94,7 +92,6 @@ Authors:
%patch4 %patch4
%patch8 %patch8
%patch9 %patch9
%patch10
%patch11 %patch11
# rpmlint note: libwnck has a separate translation for both Bengali and Bengali India # rpmlint note: libwnck has a separate translation for both Bengali and Bengali India
@ -104,7 +101,7 @@ autoreconf -f -i
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%configure\ %configure\
--disable-static --disable-static
make %{?jobs:-j%jobs} %__make %{?jobs:-j%jobs}
%install %install
%makeinstall %makeinstall
@ -150,8 +147,10 @@ rm -rf $RPM_BUILD_ROOT
%files doc %files doc
%defattr(-,root,root) %defattr(-,root,root)
%{_datadir}/gtk-doc/html/* %{_datadir}/gtk-doc/html/*
%changelog %changelog
* Thu Nov 15 2007 - jpr@suse.de
- Remove libwnck-viewport-2.patch, it was obsoleted by a different
upstream patch
* Tue Sep 18 2007 - sbrabec@suse.cz * Tue Sep 18 2007 - sbrabec@suse.cz
- Update to version 2.20.0: - Update to version 2.20.0:
* translations update * translations update