aboutsummaryrefslogtreecommitdiff
path: root/sysutils/gkrellm2
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2004-04-13 16:53:54 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2004-04-13 16:53:54 +0000
commit666a821ad76ef5a831b3ec4a50c96307169e62db (patch)
tree628a37964c453f1e0f298374f5bf561abbf59163 /sysutils/gkrellm2
parenta020008b8a9d74b210dd560e0e30c44b5a569f81 (diff)
downloadports-666a821ad76ef5a831b3ec4a50c96307169e62db.tar.gz
ports-666a821ad76ef5a831b3ec4a50c96307169e62db.zip
Notes
Diffstat (limited to 'sysutils/gkrellm2')
-rw-r--r--sysutils/gkrellm2/Makefile5
-rw-r--r--sysutils/gkrellm2/files/extra-patch-property159
2 files changed, 162 insertions, 2 deletions
diff --git a/sysutils/gkrellm2/Makefile b/sysutils/gkrellm2/Makefile
index b975d0f794a4..8605a411ddcf 100644
--- a/sysutils/gkrellm2/Makefile
+++ b/sysutils/gkrellm2/Makefile
@@ -7,8 +7,7 @@
PORTNAME= gkrellm
PORTVERSION= 2.1.28
-PORTREVISION= 1
-#PORTREVISION= 0
+PORTREVISION= 2
CATEGORIES= sysutils ipv6
MASTER_SITES= http://web.wt.net/~billw/gkrellm/ \
${MASTER_SITE_LOCAL}
@@ -27,6 +26,8 @@ USE_RC_SUBR= YES
WRKSRC= ${WRKDIR}/${DISTNAME:C/[a-z]$//}
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-property
+
.if defined(GKRELLM_SERVER_ONLY)
BUILD_WRKSRC= ${WRKSRC}/server
INSTALL_WRKSRC= ${WRKSRC}/server
diff --git a/sysutils/gkrellm2/files/extra-patch-property b/sysutils/gkrellm2/files/extra-patch-property
new file mode 100644
index 000000000000..832f66944cf8
--- /dev/null
+++ b/sysutils/gkrellm2/files/extra-patch-property
@@ -0,0 +1,159 @@
+diff -ur src/gkrellm-private.h src/gkrellm-private.h
+--- src/gkrellm-private.h Tue Jan 20 08:46:29 2004
++++ src/gkrellm-private.h Tue Apr 13 01:24:00 2004
+@@ -480,6 +484,8 @@
+ void gkrellm_winop_place_gkrellm(gchar *);
+ void gkrellm_winop_flush_motion_events(void);
+ gboolean gkrellm_winop_updated_background(void);
++void gkrellm_winop_update_struts(void);
++void gkrellm_winop_withdrawn(void);
+ gboolean gkrellm_winop_draw_rootpixmap_onto_transparent_panel(GkrellmPanel *);
+ gboolean gkrellm_winop_draw_rootpixmap_onto_transparent_chart(GkrellmChart *);
+ void gkrellm_winop_apply_rootpixmap_transparency(void);
+diff -ur src/main.c src/main.c
+--- src/main.c Sat Jan 17 07:51:37 2004
++++ src/main.c Mon Apr 12 23:29:12 2004
+@@ -1664,6 +1664,9 @@
+ else if (_GK.debug_level & DEBUG_POSITION)
+ printf("locked configure-event: x=%d y=%d\n", x, y);
+
++ if (size_change || position_change)
++ gkrellm_winop_update_struts();
++
+ if (do_intro)
+ {
+ do_intro = FALSE;
+@@ -2216,6 +2219,7 @@
+ gtk_window_stick(GTK_WINDOW(top_window));
+ gkrellm_winop_options(argc, argv);
+ gtk_widget_show(gtree.window);
++ gkrellm_winop_withdrawn();
+
+ if (geometry || _GK.save_position)
+ configure_position_lock = TRUE; /* see cb_configure_notify */
+diff -ur src/winops-x11.c src/winops-x11.c
+--- src/winops-x11.c Wed Jan 7 12:04:24 2004
++++ src/winops-x11.c Tue Apr 13 01:11:15 2004
+@@ -270,6 +270,76 @@
+ return TRUE;
+ }
+
++enum
++ {
++ STRUT_LEFT = 0,
++ STRUT_RIGHT = 1,
++ STRUT_TOP = 2,
++ STRUT_BOTTOM = 3,
++ STRUT_LEFT_START = 4,
++ STRUT_LEFT_END = 5,
++ STRUT_RIGHT_START = 6,
++ STRUT_RIGHT_END = 7,
++ STRUT_TOP_START = 8,
++ STRUT_TOP_END = 9,
++ STRUT_BOTTOM_START = 10,
++ STRUT_BOTTOM_END = 11
++ };
++
++static Atom net_wm_strut_partial = None;
++static Atom net_wm_strut = None;
++
++void
++gkrellm_winop_update_struts(void)
++ {
++ gulong struts[12] = { 0, };
++ Display *display;
++ Window window;
++ gint width;
++ gint height;
++
++ if (!_GK.is_dock_type)
++ return;
++
++ display = GDK_WINDOW_XDISPLAY(gkrellm_get_top_window()->window);
++ window = GDK_WINDOW_XWINDOW(gkrellm_get_top_window()->window);
++
++ if (net_wm_strut_partial == None)
++ {
++ net_wm_strut_partial
++ = XInternAtom(display, "_NET_WM_STRUT_PARTIAL", False);
++ }
++ if (net_wm_strut == None)
++ {
++ net_wm_strut = XInternAtom(display, "_NET_WM_STRUT", False);
++ }
++
++ width = _GK.chart_width + _GK.frame_left_width + _GK.frame_right_width;
++ height = _GK.monitor_height + _GK.total_frame_height;
++
++ if (_GK.x_position == 0)
++ {
++ struts[STRUT_LEFT] = width;
++ struts[STRUT_LEFT_START] = _GK.y_position;
++ struts[STRUT_LEFT_END] = _GK.y_position + height;
++ }
++ else if (_GK.x_position == _GK.w_display - width)
++ {
++ struts[STRUT_RIGHT] = width;
++ struts[STRUT_RIGHT_START] = _GK.y_position;
++ struts[STRUT_RIGHT_END] = _GK.y_position + height;
++ }
++
++ gdk_error_trap_push();
++ XChangeProperty (display, window, net_wm_strut,
++ XA_CARDINAL, 32, PropModeReplace,
++ (guchar *) &struts, 4);
++ XChangeProperty (display, window, net_wm_strut_partial,
++ XA_CARDINAL, 32, PropModeReplace,
++ (guchar *) &struts, 12);
++ gdk_error_trap_pop();
++ }
++
+ void
+ gkrellm_winop_options(gint argc, gchar **argv)
+ {
+@@ -332,22 +402,32 @@
+ XChangeProperty(display, window,
+ XInternAtom(display, "_NET_WM_STATE", False),
+ XA_ATOM, 32, PropModeReplace, (guchar *) atoms, n);
++ }
++
++void
++gkrellm_winop_withdrawn(void)
++ {
++ Display *display;
++ Window window;
+
+- if (_GK.withdrawn)
++
++ if (!_GK.withdrawn)
++ return;
++ display = GDK_WINDOW_XDISPLAY(gkrellm_get_top_window()->window);
++ window = GDK_WINDOW_XWINDOW(gkrellm_get_top_window()->window);
++
++ if (!_GK.is_dock_type)
+ {
+- if (!_GK.is_dock_type)
+- {
+- XWMHints mywmhints;
+- mywmhints.initial_state = WithdrawnState;
+- mywmhints.flags=StateHint;
+-
+- XSetWMHints(display, window, &mywmhints);
+- }
+- else
+- gkrellm_message_dialog(NULL,
+- _("Warning: -w flag is ignored when the window dock type is set"));
++ XWMHints mywmhints;
++ mywmhints.initial_state = WithdrawnState;
++ mywmhints.flags=StateHint;
++
++ XSetWMHints(display, window, &mywmhints);
+ }
+- }
++ else
++ gkrellm_message_dialog(NULL,
++ _("Warning: -w flag is ignored when the window dock type is set"));
++ }
+
+ /* Use XParseGeometry, but width and height are ignored.
+ | If GKrellM is moved, update _GK.y_position.