summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/api/commands.py2
-rw-r--r--ranger/help/console.py4
2 files changed, 3 insertions, 3 deletions
diff --git a/ranger/api/commands.py b/ranger/api/commands.py
index 55bb5b54..73975adc 100644
--- a/ranger/api/commands.py
+++ b/ranger/api/commands.py
@@ -80,7 +80,7 @@ class Command(FileManagerAware):
 	def tab(self):
 		"""Override this"""
 
-	def quick_open(self):
+	def quick(self):
 		"""Override this"""
 
 	def _tab_only_directories(self):
diff --git a/ranger/help/console.py b/ranger/help/console.py
index 1b78b215..3e83e4a8 100644
--- a/ranger/help/console.py
+++ b/ranger/help/console.py
@@ -144,9 +144,9 @@ ranger/ext/command_parser.py is used.  The tab method should return None,
 a string or an iterable sequence containing the strings which should be
 cycled through by pressing tab.
 
-Only those commands which implement the quick_open method will be specially
+Only those commands which implement the quick() method will be specially
 treated by the Quick Command Console.  For the rest, both consoles are equal.
-quick_open is called after each key press and if it returns True, the
+quick() is called after each key press and if it returns True, the
 command will be executed immediately.
 
 
R. Garbe <garbeam@wmii.de> 2006-07-10 19:46:24 +0200 committer Anselm R. Garbe <garbeam@wmii.de> 2006-07-10 19:46:24 +0200 several new changes, made gridmenu working' href='/acidbong/suckless/dwm/commit/wm.c?h=5.8.2&id=39677ec76616fe4165ef92afb14db2bef2488e30'>39677ec ^
39677ec ^
39677ec ^
0053620 ^
1076f2b



1076f2b
0053620 ^
1076f2b







1076f2b














0053620 ^
1076f2b





1076f2b





0053620 ^
1076f2b
































1076f2b
















439e15d ^
1076f2b

























39677ec ^
1076f2b












1076f2b











366d81e ^
1076f2b
439e15d ^
1076f2b
439e15d ^
1076f2b
39677ec ^



439e15d ^










8a8b795 ^
439e15d ^



16c67f3 ^

439e15d ^


1076f2b

439e15d ^





1076f2b




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218














                                                              
               
             
                    
                       
                       

                         
 
                        
                       
 
                  
                       



                                
                                                                                   
                                                         







                                              














                                                                                           
                                                     





                            





                                                                 
   
































                                                                                
















                                                                           
                  

























                                                              
                    












                                                                             











                                                                              
                      
 
                                                                          
                                                   
                                              
 



                                                                       










                                                                                    
                       



                                                      

                                                                    


                                                                        

                    





                                                                    




                           
/*
 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
 * See LICENSE file for license details.
 */

#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>

#include <X11/cursorfont.h>
#include <X11/Xatom.h>
#include <X11/Xproto.h>

#include "wm.h"

/* X structs */
Display *dpy;
Window root, barwin;
Atom net_atom[NetLast];
Cursor cursor[CurLast];
XRectangle rect, barrect;
Bool running = True;

char *bartext, tag[256];
int screen, sel_screen;

Brush brush = {0};
Client *clients = NULL;

enum { WM_PROTOCOL_DELWIN = 1 };

static Bool other_wm_running;
static char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n";
static int (*x_error_handler) (Display *, XErrorEvent *);

static void
usage()
{
	fputs("usage: gridwm [-v]\n", stderr);
	exit(1);
}

static void
scan_wins()
{
	unsigned int i, num;
	Window *wins;
	XWindowAttributes wa;
	Window d1, d2;

	if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
		for(i = 0; i < num; i++) {
			if(!XGetWindowAttributes(dpy, wins[i], &wa))
				continue;
			if(wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
				continue;
			if(wa.map_state == IsViewable)
				manage(wins[i], &wa);
		}
	}
	if(wins)
		XFree(wins);
}

/*
 * There's no way to check accesses to destroyed windows, thus
 * those cases are ignored (especially on UnmapNotify's).
 * Other types of errors call Xlib's default error handler, which
 * calls exit().
 */
int
error_handler(Display *dpy, XErrorEvent *error)
{
	if(error->error_code == BadWindow
			|| (error->request_code == X_SetInputFocus
				&& error->error_code == BadMatch)
			|| (error->request_code == X_PolyText8
				&& error->error_code == BadDrawable)
			|| (error->request_code == X_PolyFillRectangle
				&& error->error_code == BadDrawable)
			|| (error->request_code == X_PolySegment
				&& error->error_code == BadDrawable)
			|| (error->request_code == X_ConfigureWindow
				&& error->error_code == BadMatch)
			|| (error->request_code == X_GrabKey
				&& error->error_code == BadAccess))
		return 0;
	fprintf(stderr, "gridwm: fatal error: request code=%d, error code=%d\n",
			error->request_code, error->error_code);
	return x_error_handler(dpy, error); /* may call exit() */
}

/*
 * Startup Error handler to check if another window manager
 * is already running.
 */
static int
startup_error_handler(Display *dpy, XErrorEvent *error)
{
	other_wm_running = True;
	return -1;
}

static void
cleanup()
{
	/*
	Client *c;
	for(c=client; c; c=c->next)
		reparent_client(c, root, c->sel->rect.x, c->sel->rect.y);
	XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
	*/
}

int
main(int argc, char *argv[])
{
	int i;
	XSetWindowAttributes wa;
	unsigned int mask;
	Window w;
	XEvent ev;

	/* command line args */
	for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
		switch (argv[i][1]) {
		case 'v':
			fprintf(stdout, "%s", version);
			exit(0);
			break;
		default:
			usage();
			break;
		}
	}

	dpy = XOpenDisplay(0);
	if(!dpy)
		error("gridwm: cannot connect X server\n");

	screen = DefaultScreen(dpy);
	root = RootWindow(dpy, screen);

	/* check if another WM is already running */
	other_wm_running = False;
	XSetErrorHandler(startup_error_handler);
	/* this causes an error if some other WM is running */
	XSelectInput(dpy, root, SubstructureRedirectMask);
	XFlush(dpy);

	if(other_wm_running)
		error("gridwm: another window manager is already running\n");

	rect.x = rect.y = 0;
	rect.width = DisplayWidth(dpy, screen);
	rect.height = DisplayHeight(dpy, screen);
	sel_screen = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask);

	XSetErrorHandler(0);
	x_error_handler = XSetErrorHandler(error_handler);

	/* init atoms */
	net_atom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
	net_atom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);

	XChangeProperty(dpy, root, net_atom[NetSupported], XA_ATOM, 32,
			PropModeReplace, (unsigned char *) net_atom, NetLast);


	/* init cursors */
	cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);
	cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
	cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);

	update_keys();

	brush.drawable = XCreatePixmap(dpy, root, rect.width, rect.height,
			DefaultDepth(dpy, screen));
	brush.gc = XCreateGC(dpy, root, 0, 0);

	/* style */
	loadcolors(dpy, screen, &brush, BGCOLOR, FGCOLOR, BORDERCOLOR);
	loadfont(dpy, &brush.font, FONT);

	wa.override_redirect = 1;
	wa.background_pixmap = ParentRelative;
	wa.event_mask = ExposureMask;

	barrect = rect;
	barrect.height = labelheight(&brush.font);
	barrect.y = rect.height - barrect.height;
	barwin = XCreateWindow(dpy, root, barrect.x, barrect.y,
			barrect.width, barrect.height, 0, DefaultDepth(dpy, screen),
			CopyFromParent, DefaultVisual(dpy, screen),
			CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
	bartext = NULL;
	XDefineCursor(dpy, barwin, cursor[CurNormal]);
	XMapRaised(dpy, barwin);
	draw_bar();

	wa.event_mask = SubstructureRedirectMask | EnterWindowMask \
					| LeaveWindowMask;
	wa.cursor = cursor[CurNormal];
	XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);

	scan_wins();

	while(running) {
		XNextEvent(dpy, &ev);
		if(handler[ev.type])
			(handler[ev.type]) (&ev); /* call handler */
	}

	cleanup();
	XCloseDisplay(dpy);

	return 0;
}