Browse Source

Use watch-cursor while loading thumbnails

master
Bert 14 years ago
parent
commit
783213c0bb
3 changed files with 20 additions and 10 deletions
  1. +4
    -1
      main.c
  2. +14
    -8
      window.c
  3. +2
    -1
      window.h

+ 4
- 1
main.c View File

@@ -476,9 +476,12 @@ void run() {


while (1) { while (1) {
if (mode == MODE_THUMBS && tns_loaded < filecnt) { if (mode == MODE_THUMBS && tns_loaded < filecnt) {
win_set_cursor(&win, CURSOR_WATCH);
tns_load(&tns, &win, filenames[tns_loaded++]); tns_load(&tns, &win, filenames[tns_loaded++]);
tns_render(&tns, &win); tns_render(&tns, &win);
if (!XPending(win.env.dpy)) if (tns_loaded == filecnt)
win_set_cursor(&win, CURSOR_ARROW);
else if (!XPending(win.env.dpy))
continue; continue;
} else if (timeout) { } else if (timeout) {
t.tv_sec = 0; t.tv_sec = 0;


+ 14
- 8
window.c View File

@@ -26,8 +26,9 @@
#include "util.h" #include "util.h"
#include "window.h" #include "window.h"


static Cursor arrow; static Cursor carrow;
static Cursor hand; static Cursor chand;
static Cursor cwatch;
static GC bgc; static GC bgc;


Atom wm_delete_win; Atom wm_delete_win;
@@ -107,8 +108,9 @@ void win_open(win_t *win) {
XSelectInput(e->dpy, win->xwin, StructureNotifyMask | KeyPressMask | XSelectInput(e->dpy, win->xwin, StructureNotifyMask | KeyPressMask |
ButtonPressMask | ButtonReleaseMask | Button2MotionMask); ButtonPressMask | ButtonReleaseMask | Button2MotionMask);


arrow = XCreateFontCursor(e->dpy, XC_left_ptr); carrow = XCreateFontCursor(e->dpy, XC_left_ptr);
hand = XCreateFontCursor(e->dpy, XC_fleur); chand = XCreateFontCursor(e->dpy, XC_fleur);
cwatch = XCreateFontCursor(e->dpy, XC_watch);


bgc = XCreateGC(e->dpy, win->xwin, 0, None); bgc = XCreateGC(e->dpy, win->xwin, 0, None);


@@ -135,8 +137,9 @@ void win_close(win_t *win) {
if (!win) if (!win)
return; return;


XFreeCursor(win->env.dpy, arrow); XFreeCursor(win->env.dpy, carrow);
XFreeCursor(win->env.dpy, hand); XFreeCursor(win->env.dpy, chand);
XFreeCursor(win->env.dpy, cwatch);


XFreeGC(win->env.dpy, bgc); XFreeGC(win->env.dpy, bgc);


@@ -281,11 +284,14 @@ void win_set_cursor(win_t *win, win_cur_t cursor) {


switch (cursor) { switch (cursor) {
case CURSOR_HAND: case CURSOR_HAND:
XDefineCursor(win->env.dpy, win->xwin, hand); XDefineCursor(win->env.dpy, win->xwin, chand);
break;
case CURSOR_WATCH:
XDefineCursor(win->env.dpy, win->xwin, cwatch);
break; break;
case CURSOR_ARROW: case CURSOR_ARROW:
default: default:
XDefineCursor(win->env.dpy, win->xwin, arrow); XDefineCursor(win->env.dpy, win->xwin, carrow);
break; break;
} }
} }

+ 2
- 1
window.h View File

@@ -25,7 +25,8 @@


typedef enum win_cur_e { typedef enum win_cur_e {
CURSOR_ARROW = 0, CURSOR_ARROW = 0,
CURSOR_HAND CURSOR_HAND,
CURSOR_WATCH
} win_cur_t; } win_cur_t;


typedef struct win_env_s { typedef struct win_env_s {


||||||
x
 
000:0
Loading…
Cancel
Save