about summary refs log tree commit diff stats
path: root/dwm.c
Commit message (Collapse)AuthorAgeFilesLines
* die() consistency: always add newlineHiltjo Posthuma2016-08-121-5/+5
|
* import new drw from libsl and minor fixes.Markus Teich2016-06-261-46/+39
| | | | | - better scaling for occupied tag squares. - draw statusline first to omitt some complicated calculations.
* Configure geometry before applying rulesEric Pruitt2016-06-241-6/+7
| | | | | | Configuring geometry before applying rules makes it possible to have more complex constraints in applyrules that depend on the initial window dimensions and location.
* fix fullscreen clients not resized on X display resolution changeHiltjo Posthuma2015-12-191-1/+6
| | | | patch provided by Bert Münnich <ber.t_AT_posteo.de>, thanks!
* code-style consistency 6.1Hiltjo Posthuma2015-11-081-433/+503
|
* unboolificationHiltjo Posthuma2015-11-081-71/+70
|
* sort include + whitespace fixHiltjo Posthuma2015-11-081-3/+3
|
* separate program-specific c99 bool and X11Hiltjo Posthuma2015-11-081-70/+72
| | | | | True, False are X11-specific (int), make sure to use c99 stdbool for program-specific things.
* setfullscreen: don't process the property twiceQuentin Rameau2015-11-071-2/+2
| | | | | | | | | | Some clients try to set _NET_WM_STATE_FULLSCREEN even when the window is already in fullscreen. For example, c->oldstate was set two times in a raw and window would then always be floating. We must check that it's not the case before processing it. (original patch modified with suggestion from Markus Teich <markus.teich@stusta.mhn.de>)
* sync updated drw code from dmenuHiltjo Posthuma2015-10-201-4/+6
| | | | | | important: - drw_rect: didn't use w and h, change the dwm code accordingly. - drw_text: text is NULL is not allowed, use drw_rect().
* dwm: use ecalloc, prevent theoretical overflowHiltjo Posthuma2015-10-201-6/+3
|
* cleanup, dont use c++ style commentsHiltjo Posthuma2015-10-201-4/+4
| | | | | | - signal: print error string. - die: start message with lower-case (consistency). - bump version to 2015.
* dwm: cleanup: free schemes and cursors as arrayHiltjo Posthuma2015-10-201-9/+8
|
* Add Xft and follback-fonts support to graphics libEric Pruitt2015-03-131-10/+10
|
* applied Hiltjo's resize/move limitationAnselm R Garbe2014-08-111-2/+11
| | | | | | "Limit the amount of updates when resizing or moving a window in floating mode to 60 times per second. This makes resizing and moving alot smoother and by limiting it it also uses alot less resources on my machine.
* same as before with dwm.c as wellAnselm R Garbe2014-05-291-1/+1
|
* applied Lukas' focus suggestion at startup, thanksAnselm R Garbe2013-08-271-0/+1
|
* applied improved version of Martti Kühne's dmenu/multi monitor approach ↵Anselm R Garbe2013-08-021-0/+2
| | | | from dwm, no dmenuspawn required
* applied Julian's enum approach,Anselm R Garbe2013-06-191-25/+24
| | | | however renamed theme into scheme resp. Theme into ClrScheme
* finished libsl/drw integrationAnselm R Garbe2013-06-161-183/+70
|
* renamed draw into drwAnselm R Garbe2013-04-171-1/+1
|
* continued with draw.c abstraction, also started util.{h,c} implementation, ↵Anselm R Garbe2012-12-081-13/+1
| | | | that will be used by draw.c as well
* reverting the xkb dependency, I don't care if this function is deprecated, ↵anselm@garbe.us2012-11-181-9/+2
| | | | it seems it breaks other stuff instead.
* reverting to plain X11 fonts in order to implement draw.c defaultanselm@garbe.us2012-11-181-36/+66
|
* compile fixanselm@garbe.us2012-11-171-2/+2
|
* applied Neil Klopfstein's patch, slightly modifiedanselm@garbe.us2012-11-171-2/+8
|
* starting with initial draw.hanselm@garbe.us2012-11-171-0/+2
|
* incorporating Xft instead of cairo, cairo provides far too many optionsanselm@garbe.us2012-11-021-66/+36
|
* reverted to old updategeom() after several complains, we need to optimize ↵anselm@garbe.us2012-07-081-53/+70
| | | | the old way
* applied James Turner's XkbKeycodeToKeysym patch, thanksanselm@garbe.us2012-06-231-1/+2
|
* drastically changed updategeom() handling, see comment in updategeom() for ↵anselm@garbe.us2012-06-231-70/+53
| | | | details
* reversed Andreas Amann's fullscreen fix with the approach proposed by Gary ↵anselm@garbe.us2012-06-231-11/+10
| | | | | | Langshaw: - idea is not supporting movemouse/resizemouse/togglefloating for fullscreen windows - as fullscreen windows are broken anyways, they should only be adjusted by their own means
* added kludge to fix some input focus misbehavior in gedit and anjuta, thanks ↵anselm@garbe.us2012-04-151-1/+2
| | | | Martti Kühne
* applied Andreas Amanns' netwm_client_list patch, but with some indentation fixesanselm@garbe.us2012-03-251-1/+20
|
* applied Andreas Amann's netwm_active_window patch, thxanselm@garbe.us2012-03-251-3/+12
|
* applied Andreas Amann fullscreen fix, some minor modificationsanselm@garbe.us2012-03-171-3/+10
|
* unfocus on slow sloppy monitor focusConnor Lane Smith2012-02-101-0/+1
|
* applied Eckehard Berns fix fix, sorry that this took so longanselm@garbe.us2012-02-081-3/+5
|
* applied Eckehard Berns barwin leak fix and his suggestion to deal with ↵anselm@garbe.us2012-01-121-3/+3
| | | | restack() -- the latter aspect needs further investigation.
* add sloppy monitor focusConnor Lane Smith2011-11-151-3/+19
|
* calculate window/monitor intersectionConnor Lane Smith2011-11-061-15/+19
|
* honour fullscreen hint on mapConnor Lane Smith2011-11-061-56/+66
|
* testing Brians multiscreen issue fixanselm@garbe.us2011-11-041-9/+9
|
* make ewmh dialog windows floatChristoph Lohmann2011-11-021-1/+27
|
* allow 0 nmasterConnor Lane Smith2011-10-311-3/+5
|
* fix big-border corner caseConnor Lane Smith2011-10-301-1/+1
|
* improve tile spacingConnor Lane Smith2011-10-281-9/+12
|
* apply nmaster patchConnor Lane Smith2011-10-251-21/+21
|
* apply resize hints in floating layoutConnor Lane Smith2011-10-251-1/+1
|
* hide clients to the left, not the rightConnor Lane Smith2011-10-251-1/+1
|
N2 = length(L2), (N1 == N2 -> L11 = L1, L22 = L2 ; N1 < N2 -> Min = min([fd_min(V) : V in L2]), Min1 = Min-1, L1Pad = [Min1 : _ in 1..N2-N1], L11 = L1++L1Pad, L22 = L2 ; Min = min([fd_min(V) : V in L1]), Min1 = Min-1, L2Pad = [Min1 : _ in 1..N1-N2], L11 = L1, L22 = L2++L2Pad ). %%% lex_le_aux([],_) => true. lex_le_aux([X],[Y]) => (var(X) -> (var(Y) -> bp.v_ge_v(Y,X) ; bp.domain_region_max(X,Y) ) ; (var(Y) -> bp.domain_region_min(Y,X) ; X =< Y ) ). lex_le_aux([X|Xs],[Y|Ys]), integer(X), integer(Y) => (X < Y -> true ; X == Y -> lex_le_aux(Xs,Ys) ; fail ). lex_le_aux([X|Xs],[Y|Ys]) => watch_lex_le(X,Y,Xs,Ys). watch_lex_le(X,Y,_Xs,_Ys), var(X), {generated, ins(X), ins(Y), bound(X), bound(Y)} => fd_min_max(X,MinX,_), fd_min_max(Y,_,MaxY), (MinX > MaxY -> fail; true). watch_lex_le(X,Y,_Xs,_Ys), var(Y), {generated, ins(Y), bound(Y)} => fd_min_max(X,MinX,_), fd_min_max(Y,_,MaxY), (MinX > MaxY -> fail; true). watch_lex_le(X,Y,Xs,Ys) => % come here when both X, Y become integers (X < Y -> true ; X == Y -> lex_le(Xs,Ys) ; fail ). %%% lex_lt_aux([],_) => true. lex_lt_aux([X],[Y]) => (var(X) -> (var(Y) -> bp.v_gt_v(Y,X) ; bp.domain_region_max(X,Y-1) ) ; (var(Y) -> bp.domain_region_min(Y,X+1) ; X < Y ) ). lex_lt_aux([X|Xs],[Y|Ys]), integer(X), integer(Y) => (X < Y -> true ; X == Y -> lex_lt_aux(Xs,Ys) ; fail ). lex_lt_aux([X|Xs],[Y|Ys]) => watch_lex_lt(X,Y,Xs,Ys). watch_lex_lt(X,Y,_Xs,_Ys), var(X), {generated, ins(X), ins(Y), bound(X), bound(Y)} => fd_min_max(X,MinX,_), fd_min_max(Y,_,MaxY), (MinX > MaxY -> fail; true). watch_lex_lt(X,Y,_Xs,_Ys), var(Y), {generated, ins(Y), bound(Y)} => fd_min_max(X,MinX,_), fd_min_max(Y,_,MaxY), (MinX > MaxY -> fail; true). watch_lex_lt(X,Y,Xs,Ys) => % come here when both X, Y become integers (X < Y -> true ; X == Y -> lex_lt(Xs,Ys) ; fail ). %% nvalue(N, L) => bp.nvalue(N,L). %% The following constraints are proposed and implemented by Hakan Kjellerstrand matrix_element(M,I,J,MIJ) => check_matrix(M,NRows,NCols), matrix_element(M,NRows,NCols,I,J,MIJ,cp). % % Requires that all non-zero values in Xs are distinct. % alldifferent_except_0(Xs) => all_different_except_0(Xs). all_different_except_0(Xs) => (list(Xs) -> Arr = to_array(Xs) ;array(Xs) -> Arr = Xs ; handle_exception($dvar_or_int_collection_expected(Xs), all_different_except_0) ), all_different_except_0_aux(Arr). all_different_except_0_aux(Xs) => N = len(Xs), foreach(I in 1..N-1, J in I+1..N) Xs[I] #= 0 #\/ Xs[J] #= 0 #\/ Xs[I] #!= Xs[J] end.