Bladeren bron

New option: -F, fixed/floating window

master
Bert 14 jaren geleden
bovenliggende
commit
f2ceac2f8a
3 gewijzigde bestanden met toevoegingen van 20 en 8 verwijderingen
  1. +6
    -2
      options.c
  2. +1
    -0
      options.h
  3. +13
    -6
      window.c

+ 6
- 2
options.c Bestand weergeven

@@ -29,7 +29,7 @@ options_t _options;
const options_t *options = (const options_t*) &_options; const options_t *options = (const options_t*) &_options;


void print_usage() { void print_usage() {
printf("usage: sxiv [-dfhpqsvZ] [-g GEOMETRY] [-z ZOOM] FILES...\n");
printf("usage: sxiv [-dFfhpqsvZ] [-g GEOMETRY] [-z ZOOM] FILES...\n");
} }


void print_version() { void print_version() {
@@ -45,12 +45,13 @@ void parse_options(int argc, char **argv) {
_options.zoom = 1.0; _options.zoom = 1.0;
_options.aa = 1; _options.aa = 1;


_options.fixed = 0;
_options.fullscreen = 0; _options.fullscreen = 0;
_options.geometry = NULL; _options.geometry = NULL;


_options.quiet = 0; _options.quiet = 0;


while ((opt = getopt(argc, argv, "dfg:hpqsvZz:")) != -1) {
while ((opt = getopt(argc, argv, "dFfg:hpqsvZz:")) != -1) {
switch (opt) { switch (opt) {
case '?': case '?':
print_usage(); print_usage();
@@ -58,6 +59,9 @@ void parse_options(int argc, char **argv) {
case 'd': case 'd':
_options.scalemode = SCALE_DOWN; _options.scalemode = SCALE_DOWN;
break; break;
case 'F':
_options.fixed = 1;
break;
case 'f': case 'f':
_options.fullscreen = 1; _options.fullscreen = 1;
break; break;


+ 1
- 0
options.h Bestand weergeven

@@ -29,6 +29,7 @@ typedef struct options_s {
float zoom; float zoom;
unsigned char aa; unsigned char aa;


unsigned char fixed;
unsigned char fullscreen; unsigned char fullscreen;
char *geometry; char *geometry;




+ 13
- 6
window.c Bestand weergeven

@@ -33,7 +33,8 @@ static GC bgc;


void win_open(win_t *win) { void win_open(win_t *win) {
win_env_t *e; win_env_t *e;
XClassHint *classhint;
XClassHint classhint;
XSizeHints sizehints;
XColor bgcol; XColor bgcol;
int gmask; int gmask;


@@ -99,11 +100,17 @@ void win_open(win_t *win) {


win_set_title(win, "sxiv"); win_set_title(win, "sxiv");


if ((classhint = XAllocClassHint())) {
classhint->res_name = "sxiv";
classhint->res_class = "sxiv";
XSetClassHint(e->dpy, win->xwin, classhint);
XFree(classhint);
classhint.res_name = "sxiv";
classhint.res_class = "sxiv";
XSetClassHint(e->dpy, win->xwin, &classhint);

if (options->fixed) {
sizehints.flags = PMinSize | PMaxSize;
sizehints.min_width = win->w;
sizehints.max_width = win->w;
sizehints.min_height = win->h;
sizehints.max_height = win->h;
XSetWMNormalHints(e->dpy, win->xwin, &sizehints);
} }


XMapWindow(e->dpy, win->xwin); XMapWindow(e->dpy, win->xwin);


Laden…
Annuleren
Opslaan