repo: rxvt-unicode-sixel
action: commit
revision: 
path_from: 
revision_from: 1f3878ad573690d28396941170aa52eb8bd17e26:
path_to: 
revision_to: 
git.thebackupbox.net
rxvt-unicode-sixel
git clone git://git.thebackupbox.net/rxvt-unicode-sixel
commit 1f3878ad573690d28396941170aa52eb8bd17e26
Author: Marc Lehmann 
Date:   Sat Feb 11 02:28:19 2006 +0000

    *** empty log message ***

diff --git a/src/hookinc.h b/src/hookinc.h
index 33e910f3cfc0f1afb15b7a59dccb25f9ecf04e4a..
index ..ae8815a4ea0bc578d3906ca9f01093f9e3cbf2da 100644
--- a/src/hookinc.h
+++ b/src/hookinc.h
@@ -41,6 +41,7 @@
   def (WM_DELETE_WINDOW)
   def (WM_PROTOCOLS)
   def (PROPERTY_NOTIFY)
+  def (RESIZE_ALL_WINDOWS)

   def (XIM_PREEDIT_START)
   def (XIM_PREEDIT_DONE)
diff --git a/src/main.C b/src/main.C
index 9575f5b8f1346f6cf32916690c6dd03a5a8d6b9a..
index ..e0adece7da7f3bcc17dc5b2700c25e1d15fb1807 100644
--- a/src/main.C
+++ b/src/main.C
@@ -706,9 +706,9 @@ rxvt_term::window_calc (unsigned int newwidth, unsigned int newheight)
         window_vt_x += sb_w;
     }

-  szHint.width_inc = fwidth;
+  szHint.width_inc  = fwidth;
   szHint.height_inc = fheight;
-  szHint.min_width = szHint.base_width + szHint.width_inc;
+  szHint.min_width  = szHint.base_width + szHint.width_inc;
   szHint.min_height = szHint.base_height + szHint.height_inc;

   if (newwidth && newwidth - szHint.base_width < max_width)
@@ -1035,7 +1035,9 @@ rxvt_term::resize_all_windows (unsigned int newwidth, unsigned int newheight, in
   int old_height = szHint.height;

   window_calc (newwidth, newheight);
-  XSetWMNormalHints (dpy, parent[0], &szHint);
+
+  if (!HOOK_INVOKE ((this, HOOK_RESIZE_ALL_WINDOWS, DT_INT, newwidth, DT_INT, newheight, DT_END)))
+    XSetWMNormalHints (dpy, parent[0], &szHint);

   if (!ignoreparent)
     {
diff --git a/src/perl/tabbed b/src/perl/tabbed
index 100b4b9ccdf4830186a2a9069ebfe4dc44aa97c8..
index ..179fa092b0a6298d2dfffc5e09b010a958dc9641 100644
--- a/src/perl/tabbed
+++ b/src/perl/tabbed
@@ -86,6 +86,12 @@ sub configure {
    );
 }

+sub on_resize_all_windows {
+   my ($self, $width, $height) = @_;
+
+   1
+}
+
 sub copy_properties {
    my ($self) = @_;
    my $tab = $self->{cur};
@@ -105,12 +111,17 @@ sub copy_properties {

       if ($atom == $wm_normal_hints) {
          my (@hints) = unpack "l!*", $items;
-
+      
          $hints[$_] += $self->{tabheight} for (4, 6, 16);
-
+      
          $items = pack "l!*", @hints;
       }
-      $self->XChangeWindowProperty ($self->parent, $atom, $type, $format, $items);
+
+      my ($dtype, $dformat, $ditems) = $self->XGetWindowProperty ($self->parent, $atom);
+
+      if ($dtype != $type or $dformat != $format or $ditems ne $items) {
+         $self->XChangeWindowProperty ($self->parent, $atom, $type, $format, $items);
+      }
    }

    $self->XDeleteProperty ($self->parent, $_) for keys %our_props;
diff --git a/src/rxvtperl.xs b/src/rxvtperl.xs
index b5e49ea96618d48e167c7be394b55f8e48dc28a2..
index ..aa481a7b0c170b2c573d92b9660cdc5330b6d9c7 100644
--- a/src/rxvtperl.xs
+++ b/src/rxvtperl.xs
@@ -1814,7 +1814,6 @@ rxvt_term::XChangeWindowProperty (Window window, Atom property, Atom type, int f
 	XChangeProperty (THIS->dpy, window, property,
                          type, format, PropModeReplace,
                          (unsigned char *)data_, len / elemsize);
-        XSync (THIS->dpy, 0);
 }

 Atom

-----END OF PAGE-----