comparison audacious/equalizer.c @ 1044:d4ecce9b5190 trunk

[svn] - same for equalizerwin
author nenolod
date Sun, 14 May 2006 11:23:22 -0700
parents 286156196e16
children 18ef6f3089d4
comparison
equal deleted inserted replaced
1043:d122e3abf61c 1044:d4ecce9b5190
371 hint_move_resize(equalizerwin, event->x_root, 371 hint_move_resize(equalizerwin, event->x_root,
372 event->y_root, TRUE); 372 event->y_root, TRUE);
373 grab = FALSE; 373 grab = FALSE;
374 } 374 }
375 else { 375 else {
376 gint mx, my;
376 equalizerwin_raise(); 377 equalizerwin_raise();
378
379 gdk_window_get_pointer(GDK_WINDOW(equalizerwin->window), &mx, &my, NULL);
380 gtk_object_set_data(GTK_OBJECT(equalizerwin), "offset_x", GINT_TO_POINTER(mx));
381 gtk_object_set_data(GTK_OBJECT(equalizerwin), "offset_y", GINT_TO_POINTER(my));
382
383 gtk_object_set_data(GTK_OBJECT(equalizerwin), "is_moving", GINT_TO_POINTER(1));
377 } 384 }
378 } 385 }
379 else if (event->button == 1 && event->type == GDK_2BUTTON_PRESS 386 else if (event->button == 1 && event->type == GDK_2BUTTON_PRESS
380 && event->y < 14) { 387 && event->y < 14) {
381 equalizerwin_set_shade(!cfg.equalizer_shaded); 388 equalizerwin_set_shade(!cfg.equalizer_shaded);
414 equalizerwin_motion(GtkWidget * widget, 421 equalizerwin_motion(GtkWidget * widget,
415 GdkEventMotion * event, gpointer callback_data) 422 GdkEventMotion * event, gpointer callback_data)
416 { 423 {
417 GdkEvent *gevent; 424 GdkEvent *gevent;
418 425
419 handle_motion_cb(equalizerwin_wlist, widget, event); 426 if (gtk_object_get_data(GTK_OBJECT(equalizerwin), "is_moving"))
420 draw_main_window(FALSE); 427 {
428 gint offset_x, offset_y, mx, my, x, y;
429
430 offset_x = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(equalizerwin), "offset_x"));
431 offset_y = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(equalizerwin), "offset_y"));
432
433 gdk_window_get_pointer(NULL, &mx, &my, NULL);
434
435 x = mx - offset_x;
436 y = my - offset_y;
437
438 gtk_window_move(GTK_WINDOW(equalizerwin), x, y);
439 }
440 else
441 {
442 handle_motion_cb(equalizerwin_wlist, widget, event);
443 draw_main_window(FALSE); /* XXX: shouldn't this be draw_equalizer_window()? */
444 }
421 445
422 gdk_flush(); 446 gdk_flush();
423 447
424 while ((gevent = gdk_event_get()) != NULL) gdk_event_free(gevent); 448 while ((gevent = gdk_event_get()) != NULL) gdk_event_free(gevent);
425 449
430 equalizerwin_release(GtkWidget * widget, 454 equalizerwin_release(GtkWidget * widget,
431 GdkEventButton * event, gpointer callback_data) 455 GdkEventButton * event, gpointer callback_data)
432 { 456 {
433 gdk_pointer_ungrab(GDK_CURRENT_TIME); 457 gdk_pointer_ungrab(GDK_CURRENT_TIME);
434 gdk_flush(); 458 gdk_flush();
459
460 gtk_object_remove_data(GTK_OBJECT(equalizerwin), "is_moving");
461 gtk_object_remove_data(GTK_OBJECT(equalizerwin), "offset_x");
462 gtk_object_remove_data(GTK_OBJECT(equalizerwin), "offset_y");
435 463
436 handle_release_cb(equalizerwin_wlist, widget, event); 464 handle_release_cb(equalizerwin_wlist, widget, event);
437 draw_equalizer_window(FALSE); 465 draw_equalizer_window(FALSE);
438 466
439 return FALSE; 467 return FALSE;