-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChangeLog
More file actions
456 lines (351 loc) · 18.7 KB
/
ChangeLog
File metadata and controls
456 lines (351 loc) · 18.7 KB
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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
2007-08-07 Neil Santos <neil_santos@users.sourceforge.net>
* src/notif_area.c, src/notif_area.h: Support for notification
area. Contains only preliminary functions to get such support
going.
* src/config.h: Added macro considerations for the drawing
functions for GUI constants.
(TIME_DATE_FORMAT): Changed default time/date string format.
(FONT_NAME, FONT_SIZE): Changed default font name and size.
(USE_CLEAR_TYPE): Added flag to denote whether or not to use
ClearType by default.
(CLEARTYPE_QUALITY, CLEARTYPE_NATURAL_QUALITY): Manually included
#defines normally found windows.h for the benefit of MinGW.
* src/SConstruct: Added notif_area.{ch} to source list, as well as
requirement for the ole32 library.
2007-08-03 Neil Santos <neil_santos@users.sourceforge.net>
* src/drawing.c (siaynoq_draw_component_time_date): New function
to draw time/date string to status bar.
(siaynoq_draw_component_wnd_title): New function to draw maximized
window's title to status bar.
* src/siaynoq.c (siaynoq_msg_handler_wm_paint): Moved code to draw
time/date string and maximized window's title to their seperate
functions.
2007-08-02 Neil Santos <neil_santos@users.sourceforge.net>
* src/config.h (hotkeys): Changed default hotkey for maximizing a
window.
(tiling_rules): Added exception rules for RocketDock.
* src/siaynoq.c (siaynoq_init): Replaced all expressions
whose (boolean) return values are checked in debug builds to store
the retvals in a variable separate from the eventual value of the
function itself.
(siaynoq_resize_work_area): Removed temporary variables fold
screen's width and height, and added code to tell Windows to hide
the titlebars of minimized windows.
(siaynoq_adjust_work_area): Renamed from
siaynoq_resize_work_area() to reflect added functionality.
2007-07-29 Neil Santos <neil_santos@users.sourceforge.net>
* src/siaynoq.c (siaynoq_msg_handler_wm_paint): Added explicit
casts to parameters to calls to GetTextExtentPoint32().
* src/main.c (WinMain): Added explicit cast to PostQuitMessage()'s
WPARAM return value.
* src/tools.c (debug_output_ex): Changed fopen() to _fsopen() and
added #pragma to disable MSVC's warning for the use of
vsnprintf() (MinGW doesn't support vsnprintf_s() yet).
(system_spawn): Added #pragma to temporarily disable MSVC's
type-casting warning when calling ShellExecute().
* src/SConstruct: Removed provision for the -ansi flag to GCC (see
2007-07-21 changes); it's not like MSVC actually *supports* ANSI-C
strictly.
Added -pedantic and -Wno-unknown-pragmas to compiler flags for
stricter checking and to stop GCC from trying to parse #pragmas
for MSVC (respectively).
* src/tiling.c (siaynoq_set_wnd_handle_on_track): Replaced ad-hoc
arbitrary logging to use new debug_output_ex().
(siaynoq_tile_non_focused_wnd_walker): Likewise.
2007-07-28 Neil Santos <neil_santos@users.sourceforge.net>
* src/siaynoq.c (siaynoq_msg_handler_wm_paint): Set flag for
whether time/date string is dynamic to FALSE if strftime() fails.
2007-07-28 Tuncer Ayaz <tuncer.ayaz@gmail.com>
* src/siaynoq.c (siaynoq_msg_handler_wm_paint): Corrected meaning
of ctd_str_is_dynamic and adjust all dependent blocks accordingly.
Replaced ad-hoc arbitrary logging to use new debug_output_ex().
* src/hooks.c (siaynoq_hook_shellproc): Replaced ad-hoc arbitrary
logging to use new debug_output_ex().
* src/tools.c (debug_output_ex): New variadic function.
(debug_output): Changed to use debug_output_ex() internally.
2007-07-22 Neil Santos <neil_santos@users.sourceforge.net>
* src/config.h (tiling_rules): Added rule for Window's CoolSwitch;
should stop the damn thing from being tiled.
* src/tools.c (shared_mem_struct_init): Moved declaration of local
variables to top of function, in lieu with efforts to get into bed
with MSVC.
(reg_get_value, reg_set_value): Change call to RegCreateKeyEx() to
use the least privilege necessary for the task.
(reg_get_value_info): New function.
* src/hooks.c (siaynoq_hook_shellproc): Moved declaration of local
variables to top of function, in lieu with efforts to get into bed
with MSVC.
* src/siaynoq.c: Removed all `desktop' related items. Haven't
used that `feature' since I made it optional, anyway.
(siaynoq_run_startup_items): Split into to
functions (siaynoq_run_reg_startup_items,
siaynoq_run_fs_startup_items) to facilitate cleanup.
(siaynoq_run_reg_startup_items, siaynoq_run_fs_startup_items):
Split from siaynoq_run_startup_items. Now compiles cleanly under
MSVC. Still needs to be cleaned up, though. I'm sure there's a
lot of duplicated functionality in these two functions.
(siaynoq_msg_handler_wm_paint): New function. Handles painting.
(siaynoq_msg_handler_wm_paint): Clean up. Should compile cleanly
under MSVC now; hopefully, it's a bit easier to decipher, as well.
Further clean up is planned.
(siaynoq_msg_handler_sy_windowdestroyed): New function. Handles
the conundrum that ensues whena window is destroyed.
2007-07-21 Neil Santos <neil_santos@users.sourceforge.net>
* src/hotkeys.c (siaynoq_hotkeys_init, siaynoq_hotkey_by_func_ptr)
(siaynoq_hotkey_by_name): Moved declaration of local
variables to top of function, in lieu with efforts to get into bed
with MSVC.
* src/hotkeys.h (SIAYNOQ_IGNORED_HOTKEY_ARG): New global. Use for
hotkey functions that ignore their arguments. Declared because
Microsoft's compiler doesn't understand the inline `{ 0 }'
construct cast with a type for initializing unions/structs.
* src/tools.h: Forgot to add system_spawn()'s prototype; done.
* src/siaynoq.c (siaynoq_run_startup_items): Replaced crappy block
of code using CreateProcess() and attendant crap with call to
system_spawn().
(siaynoq_run_startup_items): Replaced crappy block of code using
ShellExecute() and attendant crap with call to system_spawn().
2007-07-21 Tuncer Ayaz <tuncer.ayaz@gmail.com>
* src/tiling.c (siaynoq_is_new_wnd_tileable): Replace blacklist
checking with an iteration through the tiling_rules option.
* src/config.h (tiling_rules): New option. An array of TILING_RULE
* src/tiling.h (struct TILING_RULE): New struct. Holds a rule to
determine what state a given window class name should have applied
to it (tiled or untiled).
2007-07-21 Neil Santos <neil_santos@users.sourceforge.net>
* src/tiling.c (siaynoq_is_new_wnd_tileable): Replaced calls to
strcmpi() with calls to lstrcmpi().
* src/hotkeys.c (siaynoq_hotkeys_func_ptr_by_name): Replaced call
to strcmpi() with call to lstrcmpi().
* src/config.h: Removed dependency on MemWatch.
* src/SConstruct: Added a command line flag to tell GCC to play
nice with compilers that don't support C99; should help to get
MSVC to be consider us a friend. (On by default.)
Added a command line flag to turn on GCC's strict
behavior (warnings are considered errors).
Removed lingering dependency on MemWatch.
* src/tools.c (system_spawn): New function.
* src/siaynoq.c (siaynoq_init): Moved startup item code here.
(siaynoq_run_startup_items): Changed requested key access to
minimum required to be able to open target startup keys.
* src/main.c (WinMain): Remove commented code to begin running
startup items.
2007-07-20 Neil Santos <neil_santos@users.sourceforge.net>
* src/hotkeys.c (logoff_user): Implemented code to actually log
the current user out.
2007-07-19 Neil Santos <neil_santos@users.sourceforge.net>
* src/tiling.c: Added copyright notice.
* src/config.h, src/hooks.c, src/hooks.h, src/hotkeys.c: Changed
copyright notices to put the project under version 3 of the GNU
General Public License.
* src/hotkeys.h, src/main.c, src/siaynoq.c, src/siaynoq.h: Likewise.
* src/tiling.h, src/tools.c, src/tools.h: Likewise
2007-05-13 Neil Santos <neil_santos@users.sourceforge.net>
* src/hotkeys.c (put_focused_window_on_track): Tiling code no
longer in hooks DLL; adjusted as necessary.
* src/siaynoq.c (siaynoq_wnd_proc_statusbar): From src/hooks.c,
moved handling of events here. Now, siaynoq_hook_shellproc()
merely sends a message to the main shell.
(siaynoq_wnd_proc_statusbar): Changed app focus handler so that it
doesn't automatically tile a window. Now, it just tags the
focused app and sets a (configurable) timer. When that timer
expires, the handle of the tracked window is compared with the
tagged one. Only if they're not the same is the tagged window
tracked.
2007-05-12 Neil Santos <neil_santos@users.sourceforge.net>
* src/tiling.c (siaynoq_is_new_wnd_tileable): Renamed from
siaynoq_is_newly_created_target_wnd_tileable().
* src/siaynoq.c (siaynoq_wnd_proc_statusbar): Instead of using the
shared mem struct's copy of the main window's handle, use the
static one.
* src/hooks.c: Moved all tiling-related functions to tiling.{ch}.
* src/tools.h: Forgot the damn include guard, and didn't notice
until now.
(struct SIAYNOQSHAREDMEM): Removed pointer to main window's handle
since all documented uses are superfluous.
* src/main.c (WinMain): Add call to execute
siaynoq_run_startup_items() in a different thread.
(WinMain): Commented out call to siaynoq_run_startup_items() while
cleaning up.
2007-05-11 Neil Santos <neil_santos@users.sourceforge.net>
* src/hooks.c (siaynoq_set_wnd_handle_on_track): Return handle of
previously maximized window if target is the same as the current
one.
2007-05-10 Neil Santos <neil_santos@users.sourceforge.net>
* src/siaynoq.c (siaynoq_wnd_create_statusbar)
(siaynoq_resize_work_area): Factored code to resize work area from
siaynoq_wnd_create_statusbar() into its own function.
(siaynoq_wnd_proc_statusbar): When a session is unlocked or a
change in display resolution is detected, reset work area.
2007-05-07 Neil Santos <neil_santos@users.sourceforge.net>
* src/hooks.c (siaynoq_is_target_wnd_tileable): Remove silly check
for HMENU values.
* src/tools.c (reg_set_value): Added HKEY parameter; used in
RegCreateKeyEx(). If NULL, HKEY_CURRENT_USER is used instead.
(reg_get_value): Fixed signature to properly reflect parameters
handled by RegQueryValueEx().
(shared_mem_struct_init): Return NULL explicitly if file mapping
object seems to have already been initialized.
2007-05-06 Neil Santos <neil_santos@users.sourceforge.net>
* src/tools.c (reg_set_value): Added BOOL parameter; if true, then
registry is flushed before closing.
* src/siaynoq.c (siaynoq_wnd_proc_statusbar): Fixed a flaw in the
logic that determines which window's title ought to be queried for
display in the status bar.
2007-05-05 Neil Santos <neil_santos@users.sourceforge.net>
* src/hooks.c (siaynoq_is_newly_created_target_wnd_tileable):
Check whether given window handle can be maximized so it can be
considered tileable. Stops windows such as those created by
Microsoft's installer from being tiled.
(siaynoq_hook_shellproc): Apparently, the window handle passed on
activation can be NULL; replaced assert with a conditional. Was
noticed when launching Yuri's Revenge triggered the assertion.
* src/config.h (MAIN_MOD_KEY): Define as one of the VK_*
constants. Used mainly in selecting which key to check the status
off when focus changes.
* src/SConstruct: Added support for boolean command-line options
to control the build. Refined control over the libraries
included, depending mostly on the values of command-line options.
* src/hotkeys.c (load_hooks_dll, unload_hooks_dll): New hotkey
functions. Available only if DEBUG was specified during
compilation. Helps make modifying the hooks DLL a bit easier.
Added default bindings as well.
(put_focused_window_on_track): Check if hook DLL is loaded before
doing anything.
* src/siaynoq.c (siaynoq_init, siaynoq_free): Moved the code to
load/initialize and free/unload to separate helper functions
located in tools.c to enable better modularization. Doesn't help
with the resource usage, though.
(siaynoq_wnd_proc_statusbar): Output paint-related debugging
messages only if _DEBUG is specified during compile.
2007-05-03 Neil Santos <neil_santos@users.sourceforge.net>
* src/tools.c (shared_mem_struct_init): Initialize instance only
if it isn't NULL.
(shared_mem_struct_free): Actually try and figure out if the API
calls succeeded.
(shared_mem_struct_init, shared_mem_struct_free): Modified to be
more general.
(shared_mem_struct_init): If file mapping already exists, close
file mapping handle and set it to NULL. Retaining its value in
this case makes CloseHandle() fail, reporting the parameter value
as invalid.
(shared_mem_struct_free): Perform operations only if respective
parameters are not NULL.
* src/hooks.c (struct SIAYNOQSHAREDMEMHH): New struct. Holds
handles for any hooks set through SetWindowsHookEx().
(DllMain): Moved initialization and freeing of general shared
memory struct to siaynoq_hooks_init() and siaynoq_hooks_free(),
respectively.
(DllMain): Made initialization of MemWatch routines called only on
process attach.
(siaynoq_hooks_init, siaynoq_hooks_free): Moved initialization and
free of general shared memory struct back to DllMain(). Having
those procedures outside said function failed in triggering the
tiling.
(siaynoq_hooks_init, siaynoq_hooks_free): Use modified shared mem
helper functions in initializing and freeing the hook DLL-only
shared mem struct.
(siaynoq_hook_shellproc): Added handler for window destructions.
Right now, this is literally the same block from r3; will probably
need to be trimmed down quite a bit.
* src/tools.h (struct SIAYNOQSHAREDMEM): Removed member for the
hook handle; what the fuck was I thinking, putting that in there?
* src/hotkeys.c: Removed references to the shared mem struct,
since there are no longer any functions that use it.
* src/siaynoq.c (siaynoq_wnd_proc_statusbar): Moved setting the
ProgramCount registry value from hotkeys.c.
2007-05-02 Neil Santos <neil_santos@users.sourceforge.net>
* src/hotkeys.c (siaynoq_hotkeys_init, siaynoq_hotkeys_free): Use
helper functions in initializing and freeing instance of shared
mem struct.
* src/hooks.c (DllMain): Use helper functions in initializing and
freeing instance of shared mem struct.
* src/tools.c (shared_mem_struct_init): If file mapping object has
already been created, return the value of the shared mem parameter
instead of just plain NULL.
* src/siaynoq.c (siaynoq_wnd_proc_statusbar): Changed
specification of coordinates for BitBlt() calls for the time/date
and window title display. Also, fixed a bug in the length of the
bitmap for the window title (forgot to take the layout symbol's
length into consideration).
(siaynoq_init, siaynoq_free): Use helper functions in initializing
and freeing instance of shared mem struct.
* src/tools.h (struct SIAYNOQSHAREDMEM): Moved declaration of
shared mem struct, then added support functions for
initializing/freeing instances of said struct.
2007-05-01 Neil Santos <neil_santos@users.sourceforge.net>
* src/hotkeys.c (siaynoq_hotkeys_init): Call CreateFileMapping()
only if file mapping object is NULL.
* src/hooks.c (siaynoq_is_newly_created_target_wnd_tileable):
Forgot to free() a malloc()'d string.
(siaynoq_is_newly_created_target_wnd_tileable): Getting the module
filename should only have been done in DEBUG builds; bracketed the
block.
* src/siaynoq.c (siaynoq_wnd_proc_statusbar): Fixed GDI leaks;
didn't know that CreateSolidBrush() produced handles that needed
to be deleted.
(siaynoq_init): Call CreateFileMapping() only if file mapping
object is NULL.
(siaynoq_wnd_proc_statusbar): malloc()'d string for the active
window's title was only being freed if GetWindowText() returned a
non-zero value, causing memory to leak.
2007-04-29 Neil Santos <neil_santos@users.sourceforge.net>
* src/siaynoq.c (siaynoq_wnd_proc_statusbar): Reverted to the
previous revision as I thoroughly messed up the WM_PAINT handler
while trying to rewrite it to minimize flickering.
(siaynoq_wnd_regclass_statusbar): Use the values from config.h for
the background color during window creation.
(siaynoq_wnd_proc_statusbar): Reimplemented changes to prevent
flickering when redrawing the status bar.
* src/siaynoq.c (siaynoq_init): Updated reference to shared
library's name to reflect name change.
(siaynoq_wnd_proc_statusbar): Added code to draw time/date on
status bar with format specified in config.h. Also, fixed a
little grammatical error in comments.
(siaynoq_wnd_proc_statusbar): Added handling of WM_TIMER, if
strftime() succeeds, to update time display as necessary.
* src/SConstruct: Changed name of target shared library to
`wafer.dll'; seems more appropriate. Also added a cpp define for
WIN32_LEAN_AND_MEAN, just in case it can actually help.
* src/hooks.c (siaynoq_is_newly_created_target_wnd_tileable):
Added class name of the system notification area (systray) window
to the hardcoded exceptions to lessen lossage when running
alongside Explorer.
(siaynoq_hooks_init): Updated reference to shared library's name
to reflect name change.
2007-04-28 Neil Santos <neil_santos@users.sourceforge.net>
* src/hooks.c (siaynoq_hook_shellproc): Started experiment with
the WH_SHELL hook type. Modified init and free functions to deal
with this hook instead of CBTProc.
(siaynoq_hooks_init siaynoq_hooks_free): Removed references to the
CBTProc function and hook pointer.
(siaynoq_hook_shellproc): Added a check to see if the Alt key is
held down while changing focus; if so, don't bother tiling.
* src/hooks.h (struct SIAYNOQSHAREDMEM): Added member for pointer
to the ShellProc hook.
(struct SIAYNOQSHAREDMEM): Removed references to the CBTProc hook
pointer.
2007-04-27 Neil Santos <neil_santos@users.sourceforge.net>
* src/siaynoq.c (siaynoq_init): Added a reference, and
initialization of said reference, to the shared memory
struct (needed mostly by the hotkey functions).
(siaynoq_wnd_proc_statusbar): Modified the way the title-drawing
routine gets the handle to its target window. Works so far, but
since a proper implementation of the subdesktops concept from
larswm is yet to be devised, a lot is still to be seen.
* src/hooks.c (DllMain): Modified the initialization routine for
DLL's instance of the shared memory struct.
(siaynoq_hook_cbtproc): Moved the routine that sets focus to the
currently maximized window then forces the status bar to redraw to
siaynoq_set_wnd_handle_on_track().
(siaynoq_is_newly_created_target_wnd_tileable): Added a check for
WS_VISIBLE in the target window's style in an effort to fix the
bug that causes windows that appear then suddenly disappear to
unduly affect the tiling.
* src/hooks.h (struct SIAYNOQSHAREDMEM): Added flag specifying
which subdesktop is currently focused on by the shell.
2007-04-26 Neil Santos <neil_santos@users.sourceforge.net>
* src/hooks.c (siaynoq_calc_wnd_on_track_dimension): Moved code to
update the status bar to here from siaynoq_hook_cbtproc() in an
effort to force the damn status bar to update the window title it
contains. Well, it works.