changeset: 2248:07ebb6171586
user: Kris Maglione <jg_AT_suckless.org>
date: Mon Jan 21 16:18:17 2008 -0500
summary: Bug fixes.
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/area.c
--- a/cmd/wmii/area.c Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/area.c Mon Jan 21 16:18:17 2008 -0500
@@ -20,7 +20,8 @@ area_idx(Area *a) {
uint i;
v = a->view;
- for(i = 0, ap = v->area; a != ap; ap = ap->next)
+ i = 0;
+ for(ap=v->area; a != ap; ap=ap->next)
i++;
return i;
}
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/column.c
--- a/cmd/wmii/column.c Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/column.c Mon Jan 21 16:18:17 2008 -0500
@@ -35,13 +35,13 @@ column_new(View *v, Area *pos, uint w) {
Area *a;
a = area_create(v, pos, w);
+ return a;
if(!a)
return nil;
view_arrange(v);
if(v == screen->sel)
view_focus(screen, v);
- return a;
}
void
@@ -51,6 +51,8 @@ column_insert(Area *a, Frame *f, Frame *
f->client->floating = false;
f->column = area_idx(a);
frame_insert(f, pos);
+ if(a->sel == nil)
+ area_setsel(a, f);
}
void
@@ -67,13 +69,11 @@ column_attach(Area *a, Frame *f) {
f->r.max.y = Dy(a->r) / nframe;
column_insert(a, f, a->sel);
- if(a->sel == nil)
- area_setsel(a, f);
column_arrange(a, false);
}
void
-column_remove(Frame *f, bool arrange) {
+column_remove(Frame *f) {
Client *c;
Frame *pr;
Area *a;
@@ -94,23 +94,15 @@ column_remove(Frame *f, bool arrange) {
a->sel = nil;
area_setsel(a, pr);
}
-
- if(a->frame) {
- if(arrange)
- column_arrange(a, False);
- }
- else {
- if(v->area->next->next)
- area_destroy(a);
- else if(v->area->frame)
- area_focus(v->area);
- }
}
void
column_detach(Frame *f) {
-
- column_remove(f, true);
+ Area *a;
+
+ a = f->area;
+ column_remove(f);
+ column_arrange(a, false);
}
static void
@@ -240,9 +232,16 @@ void
void
column_arrange(Area *a, bool dirty) {
Frame *f;
+ View *v;
if(a->floating || !a->frame)
return;
+
+ v = a->view;
+ if(!a->frame) {
+ view_arrange(v);
+ return;
+ }
switch(a->mode) {
case Coldefault:
@@ -266,8 +265,8 @@ column_arrange(Area *a, bool dirty) {
}
column_scale(a);
resize:
- if(a->view == screen->sel) {
- view_restack(a->view);
+ if(v == screen->sel) {
+ view_restack(v);
client_resize(a->sel->client, a->sel->r);
for(f=a->frame; f; f=f->anext)
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/event.c
--- a/cmd/wmii/event.c Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/event.c Mon Jan 21 16:18:17 2008 -0500
@@ -4,7 +4,6 @@
#include "dat.h"
#include <X11/keysym.h>
#include "fns.h"
-#include "printevent.h"
void
dispatch_event(XEvent *e) {
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/fns.h
--- a/cmd/wmii/fns.h Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/fns.h Mon Jan 21 16:18:17 2008 -0500
@@ -66,7 +66,7 @@ void column_detach(Frame*);
void column_detach(Frame*);
void column_insert(Area*, Frame*, Frame*);
Area* column_new(View*, Area *, uint);
-void column_remove(Frame*, bool);
+void column_remove(Frame*);
void column_resize(Area*, int);
void column_resizeframe(Frame*, Rectangle*);
void div_draw(Divide*);
@@ -180,6 +180,9 @@ void grab_button(XWindow, uint button, u
void grab_button(XWindow, uint button, ulong mod);
Align snap_rect(Rectangle *rects, int num, Rectangle *current, Align *mask, int snapw);
+/* printevent.c */
+void printevent(XEvent*);
+
/* rule.c */
void trim(char *str, const char *chars);
void update_rules(Rule**, const char*);
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/mouse.c
--- a/cmd/wmii/mouse.c Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/mouse.c Mon Jan 21 16:18:17 2008 -0500
@@ -278,7 +278,7 @@ horiz:
/* TODO: Fix... Tangled, broken mess. */
fprev = f->aprev;
fnext = f->anext;
- column_remove(f, false);
+ column_remove(f);
if(fnext
&& (!fprev || (fw->fprev != fprev)
&& (fw->fprev != fprev->aprev))) {
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/printevent.c
--- a/cmd/wmii/printevent.c Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/printevent.c Mon Jan 21 16:18:17 2008 -0500
@@ -44,9 +44,7 @@
#include <bio.h>
//#include "fns.h"
#include "printevent.h"
-#include <X11/Xproto.h>
#define Window XWindow
-#include <X11/Intrinsic.h>
#define nil ((void*)0)
@@ -406,15 +404,15 @@ TPlace(Biobuf *b, va_list *ap) {
/* Returns the string equivalent of a major code */
static void
TMajor(Biobuf *b, va_list *ap) {
- static Pair list[] = {
- {X_CopyArea, "X_CopyArea"},
- {X_CopyPlane, "X_CopyPlane"},
- {0, nil},
- };
- int key;
-
- key = va_arg(*ap, int);
- Bprint(b, "%s", search(list, key, strhex));
+ static char *list[] = { XMajors };
+ char *s;
+ uint key;
+
+ key = va_arg(*ap, uint);
+ s = "<nil>";
+ if(key < nelem(list))
+ s = list[key];
+ Bprint(b, "%s", s);
}
static char*
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/printevent.h
--- a/cmd/wmii/printevent.h Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/printevent.h Mon Jan 21 16:18:17 2008 -0500
@@ -1,1 +1,248 @@ void printevent(XEvent*);
void printevent(XEvent*);
+
+enum {
+ X_CreateWindow = 1,
+ X_ChangeWindowAttributes,
+ X_GetWindowAttributes,
+ X_DestroyWindow,
+ X_DestroySubwindows,
+ X_ChangeSaveSet,
+ X_ReparentWindow,
+ X_MapWindow,
+ X_MapSubwindows,
+ X_UnmapWindow,
+ X_UnmapSubwindows,
+ X_ConfigureWindow,
+ X_CirculateWindow,
+ X_GetGeometry,
+ X_QueryTree,
+ X_InternAtom,
+ X_GetAtomName,
+ X_ChangeProperty,
+ X_DeleteProperty,
+ X_GetProperty,
+ X_ListProperties,
+ X_SetSelectionOwner,
+ X_GetSelectionOwner,
+ X_ConvertSelection,
+ X_SendEvent,
+ X_GrabPointer,
+ X_UngrabPointer,
+ X_GrabButton,
+ X_UngrabButton,
+ X_ChangeActivePointerGrab,
+ X_GrabKeyboard,
+ X_UngrabKeyboard,
+ X_GrabKey,
+ X_UngrabKey,
+ X_AllowEvents,
+ X_GrabServer,
+ X_UngrabServer,
+ X_QueryPointer,
+ X_GetMotionEvents,
+ X_TranslateCoords,
+ X_WarpPointer,
+ X_SetInputFocus,
+ X_GetInputFocus,
+ X_QueryKeymap,
+ X_OpenFont,
+ X_CloseFont,
+ X_QueryFont,
+ X_QueryTextExtents,
+ X_ListFonts,
+ X_ListFontsWithInfo,
+ X_SetFontPath,
+ X_GetFontPath,
+ X_CreatePixmap,
+ X_FreePixmap,
+ X_CreateGC,
+ X_ChangeGC,
+ X_CopyGC,
+ X_SetDashes,
+ X_SetClipRectangles,
+ X_FreeGC,
+ X_ClearArea,
+ X_CopyArea,
+ X_CopyPlane,
+ X_PolyPoint,
+ X_PolyLine,
+ X_PolySegment,
+ X_PolyRectangle,
+ X_PolyArc,
+ X_FillPoly,
+ X_PolyFillRectangle,
+ X_PolyFillArc,
+ X_PutImage,
+ X_GetImage,
+ X_PolyText8,
+ X_PolyText16,
+ X_ImageText8,
+ X_ImageText16,
+ X_CreateColormap,
+ X_FreeColormap,
+ X_CopyColormapAndFree,
+ X_InstallColormap,
+ X_UninstallColormap,
+ X_ListInstalledColormaps,
+ X_AllocColor,
+ X_AllocNamedColor,
+ X_AllocColorCells,
+ X_AllocColorPlanes,
+ X_FreeColors,
+ X_StoreColors,
+ X_StoreNamedColor,
+ X_QueryColors,
+ X_LookupColor,
+ X_CreateCursor,
+ X_CreateGlyphCursor,
+ X_FreeCursor,
+ X_RecolorCursor,
+ X_QueryBestSize,
+ X_QueryExtension,
+ X_ListExtensions,
+ X_ChangeKeyboardMapping,
+ X_GetKeyboardMapping,
+ X_ChangeKeyboardControl,
+ X_GetKeyboardControl,
+ X_Bell,
+ X_ChangePointerControl,
+ X_GetPointerControl,
+ X_SetScreenSaver,
+ X_GetScreenSaver,
+ X_ChangeHosts,
+ X_ListHosts,
+ X_SetAccessControl,
+ X_SetCloseDownMode,
+ X_KillClient,
+ X_RotateProperties,
+ X_ForceScreenSaver,
+ X_SetPointerMapping,
+ X_GetPointerMapping,
+ X_SetModifierMapping,
+ X_GetModifierMapping,
+ X_NoOperation,
+};
+
+#define XMajors \
+ "<nil>",\
+ "CreateWindow",\
+ "ChangeWindowAttributes",\
+ "GetWindowAttributes",\
+ "DestroyWindow",\
+ "DestroySubwindows",\
+ "ChangeSaveSet",\
+ "ReparentWindow",\
+ "MapWindow",\
+ "MapSubwindows",\
+ "UnmapWindow",\
+ "UnmapSubwindows",\
+ "ConfigureWindow",\
+ "CirculateWindow",\
+ "GetGeometry",\
+ "QueryTree",\
+ "InternAtom",\
+ "GetAtomName",\
+ "ChangeProperty",\
+ "DeleteProperty",\
+ "GetProperty",\
+ "ListProperties",\
+ "SetSelectionOwner",\
+ "GetSelectionOwner",\
+ "ConvertSelection",\
+ "SendEvent",\
+ "GrabPointer",\
+ "UngrabPointer",\
+ "GrabButton",\
+ "UngrabButton",\
+ "ChangeActivePointerGrab",\
+ "GrabKeyboard",\
+ "UngrabKeyboard",\
+ "GrabKey",\
+ "UngrabKey",\
+ "AllowEvents",\
+ "GrabServer",\
+ "UngrabServer",\
+ "QueryPointer",\
+ "GetMotionEvents",\
+ "TranslateCoords",\
+ "WarpPointer",\
+ "SetInputFocus",\
+ "GetInputFocus",\
+ "QueryKeymap",\
+ "OpenFont",\
+ "CloseFont",\
+ "QueryFont",\
+ "QueryTextExtents",\
+ "ListFonts",\
+ "ListFontsWithInfo",\
+ "SetFontPath",\
+ "GetFontPath",\
+ "CreatePixmap",\
+ "FreePixmap",\
+ "CreateGC",\
+ "ChangeGC",\
+ "CopyGC",\
+ "SetDashes",\
+ "SetClipRectangles",\
+ "FreeGC",\
+ "ClearArea",\
+ "CopyArea",\
+ "CopyPlane",\
+ "PolyPoint",\
+ "PolyLine",\
+ "PolySegment",\
+ "PolyRectangle",\
+ "PolyArc",\
+ "FillPoly",\
+ "PolyFillRectangle",\
+ "PolyFillArc",\
+ "PutImage",\
+ "GetImage",\
+ "PolyText8",\
+ "PolyText16",\
+ "ImageText8",\
+ "ImageText16",\
+ "CreateColormap",\
+ "FreeColormap",\
+ "CopyColormapAndFree",\
+ "InstallColormap",\
+ "UninstallColormap",\
+ "ListInstalledColormaps",\
+ "AllocColor",\
+ "AllocNamedColor",\
+ "AllocColorCells",\
+ "AllocColorPlanes",\
+ "FreeColors",\
+ "StoreColors",\
+ "StoreNamedColor",\
+ "QueryColors",\
+ "LookupColor",\
+ "CreateCursor",\
+ "CreateGlyphCursor",\
+ "FreeCursor",\
+ "RecolorCursor",\
+ "QueryBestSize",\
+ "QueryExtension",\
+ "ListExtensions",\
+ "ChangeKeyboardMapping",\
+ "GetKeyboardMapping",\
+ "ChangeKeyboardControl",\
+ "GetKeyboardControl",\
+ "Bell",\
+ "ChangePointerControl",\
+ "GetPointerControl",\
+ "SetScreenSaver",\
+ "GetScreenSaver",\
+ "ChangeHosts",\
+ "ListHosts",\
+ "SetAccessControl",\
+ "SetCloseDownMode",\
+ "KillClient",\
+ "RotateProperties",\
+ "ForceScreenSaver",\
+ "SetPointerMapping",\
+ "GetPointerMapping",\
+ "SetModifierMapping",\
+ "GetModifierMapping",\
+ "NoOperation",\
+
diff -r bc0c0c49f781 -r 07ebb6171586 cmd/wmii/view.c
--- a/cmd/wmii/view.c Mon Jan 21 02:35:11 2008 -0500
+++ b/cmd/wmii/view.c Mon Jan 21 16:18:17 2008 -0500
@@ -124,7 +124,7 @@ void
void
view_focus(WMScreen *s, View *v) {
Client *c;
- Frame *f;
+ Frame *f, *fnext;
Area *a;
bool fscrn;
@@ -137,7 +137,8 @@ view_focus(WMScreen *s, View *v) {
div_update_all();
fscrn = false;
for(a=v->area; a; a=a->next)
- for(f=a->frame; f; f=f->anext)
+ for(f=a->frame; f; f=fnext) {
+ fnext = f->anext;
if(f->client->fullscreen) {
f->collapsed = false;
fscrn = true;
@@ -151,6 +152,7 @@ view_focus(WMScreen *s, View *v) {
f->oldarea = 0;
}
}
+ }
for(c=client; c; c=c->next)
if((f = c->sel)) {
if(f->view == v)
@@ -302,13 +304,18 @@ void
void
view_arrange(View *v) {
uint xoff;
- Area *a;
+ Area *a, *anext;
if(!v->area->next)
return;
view_scale(v, Dx(v->r));
xoff = 0;
+ for(a=v->area->next; a; a=anext) {
+ anext = a->next;
+ if(!a->frame && v->area->next->next)
+ area_destroy(a);
+ }
for(a=v->area->next; a; a=a->next) {
a->r.min.x = xoff;
a->r.min.y = 0;
diff -r bc0c0c49f781 -r 07ebb6171586 config.mk
--- a/config.mk Mon Jan 21 02:35:11 2008 -0500
+++ b/config.mk Mon Jan 21 16:18:17 2008 -0500
@@ -14,7 +14,7 @@ LIBS = -L/usr/lib -lc -L$(ROOT)/lib
# Flags
include $(ROOT)/mk/gcc.mk
-CFLAGS += $(DEBUGCFLAGS)
+CFLAGS += $(DEBUGCFLAGS) -O0
LDFLAGS += -g $(LIBS)
SOLDFLAGS += $(LDFLAGS)
STATIC = -static
Received on Mon Jan 21 2008 - 23:32:08 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:59:05 UTC