X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fchimara-glk.c;h=14d1e44801f7b73e0c76c41bdded91eeeb7d0c3f;hb=c98ccb87aa2581cbcd0458682727274b6e9a8cf7;hp=b7629240b7cc4422b7e8b774003399c2cd2d48be;hpb=1ae7cd7afbc51c2d016f9c7cfa3d5ea944cc8e75;p=rodin%2Fchimara.git
diff --git a/src/chimara-glk.c b/src/chimara-glk.c
index b762924..14d1e44 100644
--- a/src/chimara-glk.c
+++ b/src/chimara-glk.c
@@ -27,11 +27,11 @@
* On Linux systems, this is a file with a name like
* plugin.so. For portability, you can use libtool and
* automake:
- *
+ * |[
* pkglib_LTLIBRARIES = plugin.la
* plugin_la_SOURCES = plugin.c foo.c bar.c
* plugin_la_LDFLAGS = -module -shared -avoid-version -export-symbols-regex "^glk_main$$"
- *
+ * ]|
* This will produce plugin.la which is a text file
* containing the correct plugin file to open (see the relevant section of the
* fileref_list = NULL;
priv->current_stream = NULL;
priv->stream_list = NULL;
+ priv->timer_id = 0;
}
static void
@@ -189,16 +190,24 @@ request_recurse(winid_t win, GtkRequisition *requisition, guint spacing)
switch(win->split_method & winmethod_DirMask)
{
case winmethod_Left:
- child1.width = win->constraint_size * win->key_window->unit_width;
+ child1.width = win->key_window?
+ win->constraint_size * win->key_window->unit_width
+ : 0;
break;
case winmethod_Right:
- child2.width = win->constraint_size * win->key_window->unit_width;
+ child2.width = win->key_window?
+ win->constraint_size * win->key_window->unit_width
+ : 0;
break;
case winmethod_Above:
- child1.height = win->constraint_size * win->key_window->unit_height;
+ child1.height = win->key_window?
+ win->constraint_size * win->key_window->unit_height
+ : 0;
break;
case winmethod_Below:
- child2.height = win->constraint_size * win->key_window->unit_height;
+ child2.height = win->key_window?
+ win->constraint_size * win->key_window->unit_height
+ : 0;
break;
}
}
@@ -260,19 +269,29 @@ allocate_recurse(winid_t win, GtkAllocation *allocation, guint spacing)
if((win->split_method & winmethod_DivisionMask) == winmethod_Fixed)
{
+ /* If the key window has been closed, then default to 0; otherwise
+ use the key window to determine the size */
switch(win->split_method & winmethod_DirMask)
{
case winmethod_Left:
- child1.width = CLAMP(win->constraint_size * win->key_window->unit_width, 0, allocation->width - spacing);
+ child1.width = win->key_window?
+ CLAMP(win->constraint_size * win->key_window->unit_width, 0, allocation->width - spacing)
+ : 0;
break;
case winmethod_Right:
- child2.width = CLAMP(win->constraint_size * win->key_window->unit_width, 0, allocation->width - spacing);
+ child2.width = win->key_window?
+ CLAMP(win->constraint_size * win->key_window->unit_width, 0, allocation->width - spacing)
+ : 0;
break;
case winmethod_Above:
- child1.height = CLAMP(win->constraint_size * win->key_window->unit_height, 0, allocation->height - spacing);
+ child1.height = win->key_window?
+ CLAMP(win->constraint_size * win->key_window->unit_height, 0, allocation->height - spacing)
+ : 0;
break;
case winmethod_Below:
- child2.height = CLAMP(win->constraint_size * win->key_window->unit_height, 0, allocation->height - spacing);
+ child2.height = win->key_window?
+ CLAMP(win->constraint_size * win->key_window->unit_height, 0, allocation->height - spacing)
+ : 0;
break;
}
}