[arch-commits] Commit in geeqie/trunk (PKGBUILD fix-fullscreen.patch)
Gaetan Bisson
bisson at archlinux.org
Sun Aug 16 07:54:10 UTC 2015
Date: Sunday, August 16, 2015 @ 09:54:10
Author: bisson
Revision: 243781
apply updated fix-fullscreen.patch
Without it, one specific issue is that geeqie's fullscreen window appears on
all workspaces, not just the one geeqie belongs to (at least with dwm).
Added:
geeqie/trunk/fix-fullscreen.patch
Modified:
geeqie/trunk/PKGBUILD
----------------------+
PKGBUILD | 13 ++++-
fix-fullscreen.patch | 107 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 117 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-08-16 07:14:59 UTC (rev 243780)
+++ PKGBUILD 2015-08-16 07:54:10 UTC (rev 243781)
@@ -4,7 +4,7 @@
pkgname=geeqie
pkgver=1.2
-pkgrel=1
+pkgrel=2
pkgdesc="A lightweight image browser and viewer"
arch=('i686' 'x86_64')
url="http://www.geeqie.org/"
@@ -13,9 +13,16 @@
makedepends=('intltool' 'doxygen' 'gnome-doc-utils' 'git')
optdepends=('librsvg: SVG rendering')
install=geeqie.install
-source=('git://www.geeqie.org/geeqie.git#commit=ca42d65be013f9bcded858b656c594d45c7f8e1d')
-sha1sums=('SKIP')
+source=('git://www.geeqie.org/geeqie.git#commit=ca42d65be013f9bcded858b656c594d45c7f8e1d'
+ 'fix-fullscreen.patch')
+sha1sums=('SKIP'
+ 'dab15bbda9b329f663276b25bf1989b410596644')
+prepare() {
+ cd "${srcdir}/${pkgname}"
+ patch -p1 -i ../fix-fullscreen.patch
+}
+
build() {
cd "${srcdir}/${pkgname}"
./autogen.sh --prefix=/usr
Added: fix-fullscreen.patch
===================================================================
--- fix-fullscreen.patch (rev 0)
+++ fix-fullscreen.patch 2015-08-16 07:54:10 UTC (rev 243781)
@@ -0,0 +1,107 @@
+diff -Naur old/src/fullscreen.c new/src/fullscreen.c
+--- old/src/fullscreen.c 2015-08-16 16:37:58.132952447 +0900
++++ new/src/fullscreen.c 2015-08-16 16:43:30.031882508 +0900
+@@ -210,10 +210,6 @@
+ void (*stop_func)(FullScreenData *, gpointer), gpointer stop_data)
+ {
+ FullScreenData *fs;
+- GdkScreen *screen;
+- gint x, y;
+- gint w, h;
+- GdkGeometry geometry;
+ GdkWindow *gdkwin;
+
+ if (!window || !imd) return NULL;
+@@ -229,14 +225,9 @@
+ fs->stop_data = stop_data;
+
+ DEBUG_1("full screen requests screen %d", options->fullscreen.screen);
+- fullscreen_prefs_get_geometry(options->fullscreen.screen, window, &x, &y, &w, &h,
+- &screen, &fs->same_region);
+
+ fs->window = window_new(GTK_WINDOW_TOPLEVEL, "fullscreen", NULL, NULL, _("Full screen"));
+
+- /* this requests no decorations, if you still have them complain to the window manager author(s) */
+- gtk_window_set_decorated(GTK_WINDOW(fs->window), FALSE);
+-
+ if (options->fullscreen.screen < 0)
+ {
+ /* If we want control of the window size and position this is not what we want.
+@@ -246,9 +237,42 @@
+ }
+ else
+ {
+- gtk_window_set_screen(GTK_WINDOW(fs->window), screen);
++ GdkScreen *screen;
++ gint x, y;
++ gint w, h;
++ GdkGeometry geometry;
++
++ fullscreen_prefs_get_geometry(options->fullscreen.screen, window, &x, &y, &w, &h,
++ &screen, &fs->same_region);
++
+ if (options->fullscreen.above)
+ gtk_window_set_keep_above(GTK_WINDOW(fs->window), TRUE);
++
++ gtk_window_set_screen(GTK_WINDOW(fs->window), screen);
++ gtk_window_set_decorated(GTK_WINDOW(fs->window), FALSE);
++ gtk_window_set_resizable(GTK_WINDOW(fs->window), FALSE);
++ gtk_container_set_border_width(GTK_CONTAINER(fs->window), 0);
++
++ geometry.min_width = w;
++ geometry.min_height = h;
++ geometry.max_width = w;
++ geometry.max_height = h;
++ geometry.base_width = w;
++ geometry.base_height = h;
++ geometry.win_gravity = GDK_GRAVITY_STATIC;
++
++ gtk_window_set_geometry_hints(GTK_WINDOW(fs->window), fs->window, &geometry,
++ GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE | GDK_HINT_BASE_SIZE |
++ GDK_HINT_WIN_GRAVITY |
++ GDK_HINT_USER_POS);
++
++ gtk_window_set_default_size(GTK_WINDOW(fs->window), w, h);
++ gtk_window_move(GTK_WINDOW(fs->window), x, y);
++
++ gtk_widget_realize(fs->window);
++ gdkwin = gtk_widget_get_window(fs->window);
++ if (gdkwin != NULL)
++ gdk_window_set_override_redirect(gdkwin, TRUE);
+ }
+
+ gtk_window_set_resizable(GTK_WINDOW(fs->window), FALSE);
+@@ -256,33 +280,6 @@
+ g_signal_connect(G_OBJECT(fs->window), "delete_event",
+ G_CALLBACK(fullscreen_delete_cb), fs);
+
+- geometry.min_width = w;
+- geometry.min_height = h;
+- geometry.max_width = w;
+- geometry.max_height = h;
+- geometry.base_width = w;
+- geometry.base_height = h;
+- geometry.win_gravity = GDK_GRAVITY_STATIC;
+- /* By setting USER_POS and USER_SIZE, most window managers will
+- * not request positioning of the full screen window (for example twm).
+- *
+- * In addition, setting gravity to STATIC will result in the
+- * decorations of twm to not effect the requested window position,
+- * the decorations will simply be off screen, except in multi monitor setups :-/
+- */
+- gtk_window_set_geometry_hints(GTK_WINDOW(fs->window), fs->window, &geometry,
+- GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE | GDK_HINT_BASE_SIZE |
+- GDK_HINT_WIN_GRAVITY |
+- GDK_HINT_USER_POS);
+-
+- gtk_window_set_default_size(GTK_WINDOW(fs->window), w, h);
+- gtk_window_move(GTK_WINDOW(fs->window), x, y);
+-
+- gtk_widget_realize(fs->window);
+- gdkwin = gtk_widget_get_window(fs->window);
+- if (gdkwin != NULL)
+- gdk_window_set_override_redirect(gdkwin, TRUE);
+-
+ fs->imd = image_new(FALSE);
+
+ gtk_container_add(GTK_CONTAINER(fs->window), fs->imd->widget);
More information about the arch-commits
mailing list