]> Dogcows Code - chaz/openbox/commitdiff
a) remove the top_grip_height business from the theme
authorDana Jansens <danakj@orodu.net>
Thu, 8 Mar 2007 01:26:03 +0000 (01:26 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 8 Mar 2007 01:26:03 +0000 (01:26 +0000)
b) make the focus indicator based on border width and padding, not the handle height
c) add 2 more windows for the top corners for resizing, much easier to find them now. also base their width on padding, not the handle height or other weird things

openbox/focus.c
openbox/frame.c
openbox/frame.h
openbox/framerender.c
render/theme.c
render/theme.h

index ad7252b8db81668bf26629094f1c08f971e7d8b9..02832cea8c7f8ab428490694acbf7b65ce864f7f 100644 (file)
@@ -391,7 +391,8 @@ void focus_cycle_draw_indicator()
         gint wt, wl, wr, wb;
 
         wt = wl = wr = wb = MAX(3,
-                                ob_rr_theme->top_grip_height +
+                                MAX(1, MAX(ob_rr_theme->paddingx,
+                                           ob_rr_theme->paddingy)) * 2 +
                                 ob_rr_theme->fbwidth * 2);
 
         x = focus_cycle_target->frame->area.x;
index 866d9fd925152cfd79b67f5a0a6bc4ca2c38c79a..953ed07d1e5c889037a13c7ba249ce2e8708094d 100644 (file)
@@ -117,9 +117,11 @@ ObFrame *frame_new(ObClient *client)
 
     mask |= CWCursor;
     attrib.cursor = ob_cursor(OB_CURSOR_NORTHWEST);
-    self->tlresize = createWindow(self->title, NULL, mask, &attrib);
+    self->tltresize = createWindow(self->title, NULL, mask, &attrib);
+    self->tllresize = createWindow(self->title, NULL, mask, &attrib);
     attrib.cursor = ob_cursor(OB_CURSOR_NORTHEAST);
-    self->trresize = createWindow(self->title, NULL, mask, &attrib);
+    self->trtresize = createWindow(self->title, NULL, mask, &attrib);
+    self->trrresize = createWindow(self->title, NULL, mask, &attrib);
 
     mask &= ~CWCursor;
     self->label = createWindow(self->title, NULL, mask, &attrib);
@@ -187,10 +189,14 @@ static void set_theme_statics(ObFrame *self)
         XResizeWindow(ob_display, self->rgrip,
                       ob_rr_theme->grip_width, ob_rr_theme->handle_height);
     }
-    XResizeWindow(ob_display, self->tlresize,
-                  ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
-    XResizeWindow(ob_display, self->trresize,
-                  ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
+    XResizeWindow(ob_display, self->tltresize,
+                  ob_rr_theme->grip_width, ob_rr_theme->paddingy + 1);
+    XResizeWindow(ob_display, self->trtresize,
+                  ob_rr_theme->grip_width, ob_rr_theme->paddingy + 1);
+    XResizeWindow(ob_display, self->tllresize,
+                  ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
+    XResizeWindow(ob_display, self->trrresize,
+                  ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
 
     /* set up the dynamic appearances */
     self->a_unfocused_title = RrAppearanceCopy(ob_rr_theme->a_unfocused_title);
@@ -366,14 +372,21 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
                 XMapWindow(ob_display, self->title);
 
                 if (self->decorations & OB_FRAME_DECOR_GRIPS) {
-                    XMoveWindow(ob_display, self->tlresize, 0, 0);
-                    XMoveWindow(ob_display, self->trresize,
+                    XMoveWindow(ob_display, self->tltresize, 0, 0);
+                    XMoveWindow(ob_display, self->tllresize, 0, 0);
+                    XMoveWindow(ob_display, self->trtresize,
                                 self->width - ob_rr_theme->grip_width, 0);
-                    XMapWindow(ob_display, self->tlresize);
-                    XMapWindow(ob_display, self->trresize);
+                    XMoveWindow(ob_display, self->trrresize,
+                                self->width - ob_rr_theme->paddingx - 1, 0);
+                    XMapWindow(ob_display, self->tltresize);
+                    XMapWindow(ob_display, self->tllresize);
+                    XMapWindow(ob_display, self->trtresize);
+                    XMapWindow(ob_display, self->trrresize);
                 } else {
-                    XUnmapWindow(ob_display, self->tlresize);
-                    XUnmapWindow(ob_display, self->trresize);
+                    XUnmapWindow(ob_display, self->tltresize);
+                    XUnmapWindow(ob_display, self->tllresize);
+                    XUnmapWindow(ob_display, self->trtresize);
+                    XUnmapWindow(ob_display, self->trrresize);
                 }
             } else
                 XUnmapWindow(ob_display, self->title);
@@ -536,8 +549,10 @@ void frame_grab_client(ObFrame *self, ObClient *client)
     g_hash_table_insert(window_map, &self->handle, client);
     g_hash_table_insert(window_map, &self->lgrip, client);
     g_hash_table_insert(window_map, &self->rgrip, client);
-    g_hash_table_insert(window_map, &self->tlresize, client);
-    g_hash_table_insert(window_map, &self->trresize, client);
+    g_hash_table_insert(window_map, &self->tltresize, client);
+    g_hash_table_insert(window_map, &self->tllresize, client);
+    g_hash_table_insert(window_map, &self->trtresize, client);
+    g_hash_table_insert(window_map, &self->trrresize, client);
 }
 
 void frame_release_client(ObFrame *self, ObClient *client)
@@ -588,8 +603,10 @@ void frame_release_client(ObFrame *self, ObClient *client)
     g_hash_table_remove(window_map, &self->handle);
     g_hash_table_remove(window_map, &self->lgrip);
     g_hash_table_remove(window_map, &self->rgrip);
-    g_hash_table_remove(window_map, &self->tlresize);
-    g_hash_table_remove(window_map, &self->trresize);
+    g_hash_table_remove(window_map, &self->tltresize);
+    g_hash_table_remove(window_map, &self->tllresize);
+    g_hash_table_remove(window_map, &self->trtresize);
+    g_hash_table_remove(window_map, &self->trrresize);
 
     ob_main_loop_timeout_remove_data(ob_main_loop, flash_timeout, self, TRUE);
 
@@ -801,8 +818,10 @@ ObFrameContext frame_context(ObClient *client, Window win)
     if (win == self->handle)   return OB_FRAME_CONTEXT_HANDLE;
     if (win == self->lgrip)    return OB_FRAME_CONTEXT_BLCORNER;
     if (win == self->rgrip)    return OB_FRAME_CONTEXT_BRCORNER;
-    if (win == self->tlresize) return OB_FRAME_CONTEXT_TLCORNER;
-    if (win == self->trresize) return OB_FRAME_CONTEXT_TRCORNER;
+    if (win == self->tltresize) return OB_FRAME_CONTEXT_TLCORNER;
+    if (win == self->tllresize) return OB_FRAME_CONTEXT_TLCORNER;
+    if (win == self->trtresize) return OB_FRAME_CONTEXT_TRCORNER;
+    if (win == self->trrresize) return OB_FRAME_CONTEXT_TRCORNER;
     if (win == self->max)      return OB_FRAME_CONTEXT_MAXIMIZE;
     if (win == self->iconify)  return OB_FRAME_CONTEXT_ICONIFY;
     if (win == self->close)    return OB_FRAME_CONTEXT_CLOSE;
index b48c07cacfee521bca50146f395976ba57fd2fd4..0d04436630fa467c3f0d656c270d96dd43b371c7 100644 (file)
@@ -95,8 +95,10 @@ struct _ObFrame
     Window    lgrip;
     Window    rgrip;
 
-    Window    tlresize;
-    Window    trresize;
+    Window    tltresize;
+    Window    tllresize;
+    Window    trtresize;
+    Window    trrresize;
 
     Colormap  colormap;
 
index 2195ff742cef9465376da7650e1e7fa359440c7b..f0b83becb02eb3fe1cf7cc283276eef1dd7194e5 100644 (file)
@@ -146,14 +146,22 @@ void framerender_frame(ObFrame *self)
         ob_rr_theme->a_clear->surface.parentx = 0;
         ob_rr_theme->a_clear->surface.parenty = 0;
 
-        RrPaint(ob_rr_theme->a_clear, self->tlresize,
-                ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
+        if (ob_rr_theme->grip_width > 0)
+            RrPaint(ob_rr_theme->a_clear, self->tltresize,
+                    ob_rr_theme->grip_width, ob_rr_theme->paddingy);
+        if (ob_rr_theme->title_height > 0)
+            RrPaint(ob_rr_theme->a_clear, self->tllresize,
+                    ob_rr_theme->paddingx, ob_rr_theme->title_height);
 
         ob_rr_theme->a_clear->surface.parentx =
             self->width - ob_rr_theme->grip_width;
 
-        RrPaint(ob_rr_theme->a_clear, self->trresize,
-                ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
+        if (ob_rr_theme->grip_width > 0)
+            RrPaint(ob_rr_theme->a_clear, self->trtresize,
+                    ob_rr_theme->grip_width, ob_rr_theme->paddingy);
+        if (ob_rr_theme->title_height > 0)
+            RrPaint(ob_rr_theme->a_clear, self->trrresize,
+                    ob_rr_theme->paddingx, ob_rr_theme->title_height);
 
         /* set parents for any parent relative guys */
         l->surface.parent = t;
index 95b48896132c0ae1f13e05dfe5894a0140db6527..4c38dbd2f8ad25f665649717e79ac5ff9b5f070a 100644 (file)
@@ -987,8 +987,6 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
     }
     theme->button_size = theme->label_height - 2;
     theme->grip_width = 25;
-    theme->top_grip_height = MAX(theme->handle_height,
-                                 theme->title_height / 4);
 
     return theme;
 }
index 4d90dac8a26a6cb8b2097095d4a1b0ed9c7b868b..acceaf5fd01d0580ceb2ed3956e4a921f0b7a5ec 100644 (file)
@@ -53,7 +53,6 @@ struct _RrTheme {
     gint menu_title_height;
     gint button_size;
     gint grip_width;
-    gint top_grip_height;
 
     /* style settings - colors */
     RrColor *menu_b_color;
This page took 0.033629 seconds and 4 git commands to generate.