Sync from laptop: Get CList mode working; Parts of the window detection code -mig
Этот коммит содержится в:
родитель
1f01162672
Коммит
3a4a872fd2
@ -387,20 +387,22 @@ static void
|
||||
check_window_in_one_panel (gpointer data, gpointer user_data)
|
||||
{
|
||||
PanelContainer *pc = (PanelContainer *) data;
|
||||
GdkWindow *window = user_data;
|
||||
GdkWindowPrivate *w = (GdkWindowPrivate *) user_data;
|
||||
WPanel *panel = pc->panel;
|
||||
|
||||
if (panel->list_type == list_icons){
|
||||
GnomeIconList *icon_list = GNOME_ICON_LIST (panel->icons);
|
||||
|
||||
if (window == GTK_WIDGET (icon_list)->window){
|
||||
GdkWindowPrivate *wp = (GdkWindowPrivate *) GTK_WIDGET (icon_list)->window;
|
||||
|
||||
if (w->xwindow == wp->xwindow){
|
||||
temp_panel = panel;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
GtkCList *clist = GTK_CLIST (panel->list);
|
||||
|
||||
if (window == GTK_CLIST (panel->list)->clist_window){
|
||||
GdkWindowPrivate *wp = (GdkWindowPrivate *) clist->clist_window;
|
||||
|
||||
if (w->xwindow == wp->xwindow){
|
||||
temp_panel = panel;
|
||||
return;
|
||||
}
|
||||
@ -411,6 +413,9 @@ static WPanel *
|
||||
find_panel_owning_window (GdkWindow *window)
|
||||
{
|
||||
temp_panel = NULL;
|
||||
|
||||
printf ("Looking for window %x\n", window);
|
||||
|
||||
g_list_foreach (containers, check_window_in_one_panel, window);
|
||||
|
||||
return temp_panel;
|
||||
@ -564,6 +569,7 @@ drop_on_directory (GtkSelectionData *sel_data, GdkDragContext *context,
|
||||
WPanel *source_panel;
|
||||
GList *names;
|
||||
|
||||
gdk_flush ();
|
||||
g_warning ("Figure out the data type\n");
|
||||
if (sel_data->data == NULL)
|
||||
return;
|
||||
|
@ -783,23 +783,23 @@ internal_select_item (GtkWidget *file_list, WPanel *panel, int row)
|
||||
unselect_item (panel);
|
||||
panel->selected = row;
|
||||
|
||||
gtk_signal_handler_block_by_data (GTK_OBJECT (file_list), panel);
|
||||
select_item (panel);
|
||||
gtk_signal_handler_unblock_by_data (GTK_OBJECT (file_list), panel);
|
||||
}
|
||||
|
||||
static void
|
||||
panel_file_list_select_row (GtkWidget *file_list, int row, int column, GdkEvent *event, WPanel *panel)
|
||||
{
|
||||
int current_selection = panel->selected;
|
||||
|
||||
|
||||
printf ("Selecting %d %p, %d\n", row, event, event ? event->type : -1);
|
||||
if (!event) {
|
||||
internal_select_item (file_list, panel, row);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (event->type) {
|
||||
case GDK_BUTTON_PRESS:
|
||||
case GDK_BUTTON_RELEASE:
|
||||
printf ("1\n");
|
||||
gtk_clist_unselect_row (GTK_CLIST (panel->list), row, 0);
|
||||
internal_select_item (file_list, panel, row);
|
||||
|
||||
@ -823,6 +823,7 @@ panel_file_list_select_row (GtkWidget *file_list, int row, int column, GdkEvent
|
||||
break;
|
||||
|
||||
case GDK_2BUTTON_PRESS:
|
||||
printf ("2\n");
|
||||
gtk_clist_unselect_row (GTK_CLIST (panel->list), row, 0);
|
||||
if (event->button.button == 1)
|
||||
do_enter (panel);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user