emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: size hints and tiling window managers


From: James Cloos
Subject: Re: size hints and tiling window managers
Date: Fri, 07 Dec 2012 20:42:00 -0500
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux)

>>>>> "mr" == martin rudalics <address@hidden> writes:

mr> Eli said that he can provide arbitrary frame pixel sizes at any time.

Doesn't it just require not setting the .width_inc and .height_inc
members of the size_hints struct in src/xterm.c and src/gtkutil.c,
and editing the .min_width and .min_height code to account for that?

Something like the (as yet untested, and X-only) code below?

If so, I presume that it should be configurable, yes?

That would require some effort to work out.

-JimC

=== modified file 'src/gtkutil.c'
--- src/gtkutil.c       2012-12-03 19:15:52 +0000
+++ src/gtkutil.c       2012-12-08 01:35:39 +0000
@@ -1357,9 +1357,7 @@
   size_hints = f->output_data.x->size_hints;
   hint_flags = f->output_data.x->hint_flags;
 
-  hint_flags |= GDK_HINT_RESIZE_INC | GDK_HINT_MIN_SIZE;
-  size_hints.width_inc = FRAME_COLUMN_WIDTH (f);
-  size_hints.height_inc = FRAME_LINE_HEIGHT (f);
+  hint_flags |= GDK_HINT_MIN_SIZE;
 
   hint_flags |= GDK_HINT_BASE_SIZE;
   /* Use one row/col here so base_height/width does not become zero.
@@ -1374,8 +1372,8 @@
 
   size_hints.base_width = base_width;
   size_hints.base_height = base_height;
-  size_hints.min_width  = base_width + min_cols * size_hints.width_inc;
-  size_hints.min_height = base_height + min_rows * size_hints.height_inc;
+  size_hints.min_width  = base_width + min_cols * FRAME_COLUMN_WIDTH (f);
+  size_hints.min_height = base_height + min_rows * FRAME_LINE_HEIGHT (f);
 
   /* These currently have a one to one mapping with the X values, but I
      don't think we should rely on that.  */

=== modified file 'src/xterm.c'
--- src/xterm.c 2012-12-04 15:15:05 +0000
+++ src/xterm.c 2012-12-08 01:34:26 +0000
@@ -9534,8 +9534,6 @@
   size_hints.height = FRAME_PIXEL_HEIGHT (f);
   size_hints.width = FRAME_PIXEL_WIDTH (f);
 
-  size_hints.width_inc = FRAME_COLUMN_WIDTH (f);
-  size_hints.height_inc = FRAME_LINE_HEIGHT (f);
   size_hints.max_width = x_display_pixel_width (FRAME_X_DISPLAY_INFO (f))
     - FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, 0);
   size_hints.max_height = x_display_pixel_height (FRAME_X_DISPLAY_INFO (f))
@@ -9564,8 +9562,8 @@
     size_hints.flags |= PBaseSize;
     size_hints.base_width = base_width;
     size_hints.base_height = base_height + FRAME_MENUBAR_HEIGHT (f);
-    size_hints.min_width  = base_width + min_cols * size_hints.width_inc;
-    size_hints.min_height = base_height + min_rows * size_hints.height_inc;
+    size_hints.min_width  = base_width + min_cols * FRAME_COLUMN_WIDTH (f);
+    size_hints.min_height = base_height + min_rows * FRAME_LINE_HEIGHT (f);
   }
 
   /* If we don't need the old flags, we don't need the old hint at all.  */



-- 
James Cloos <address@hidden>         OpenPGP: 1024D/ED7DAEA6



reply via email to

[Prev in Thread] Current Thread [Next in Thread]