[前][次][番号順一覧][スレッド一覧]

sylpheed-jp:1212

From: Tom Mishima <tmishima@xxxxxxxxxx>
Date: Wed, 21 Nov 2001 19:26:08 +0900
Subject: [sylpheed-jp:01212] Re: Sylpheed のカスタマイズについて

三嶋です。

> それで gtkアプリケーション全体の挙動だと思うのですが、ディ
> レクトリをダブルクリックして移動すると、せっかく表示して
> いるファイル名が消失してしまいます。このファイル名が消え
> ずに残ってくれれば、さらに user friendly という気がします。
> 実現するのは難しい(別問題?)でしょうか?

実現することは、難しくないと思いますが、Zerow_jpさんが言っている通り、
別のgtk+アプリケーションとの操作の統一が問題でしょう。

ですが、Mozillaはgtk+を使用しながら、別の方法でこれを回避している様です。
(ハックしたことがないので詳しくは分かりませんが)

多分、お望みの動作は以下のパッチで可能だと思います。
しかし、その弊害としてフォルダを選択した時に、そのフォルダが反転しません。
これは、ファイル名を書き換えて、その書き換えた文字と一致する場所を反転
しているからです。
(ファイル名と一致するフォルダがあれば、反転すると思いますが、確認して
いません。)

反転はしなくとも、ダブルクリックは効いてフォルダを移動できます。

もっと根本的な部分から、アプリケーション側で書き直せば対応できると思い
ますが、これ以上の時間は私にはないので。

ソースコード的には、ファイル名を入れておくstatic gcharを使っていたりと
推奨できるものではありません。

--- filesel.c.bak	Wed Nov 21 19:16:57 2001
+++ filesel.c	Wed Nov 21 19:17:07 2001
@@ -37,6 +37,12 @@
 static void filesel_cancel_cb(GtkWidget *widget, gpointer data);
 static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data);
 static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
+static void filesel_dir_button (GtkWidget *widget,
+                gint row,
+                gint column,
+                GdkEventButton *bevent,
+                gpointer user_data);
+static gchar *filesel_file=NULL;
 
 gchar *filesel_select_file(const gchar *title, const gchar *file)
 {
@@ -57,9 +63,15 @@
 
 	gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), cwd);
 
-	if (file)
+	if (file){
 		gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel),
 						file);
+		if (filesel_file) {
+			g_free(filesel_file);
+			filesel_file = NULL;
+		}
+		filesel_file = g_strdup(file);
+	}
 
 	gtk_widget_show(filesel);
 
@@ -106,7 +118,9 @@
 			   GTK_SIGNAL_FUNC(manage_window_focus_in), NULL);
 	gtk_signal_connect(GTK_OBJECT(filesel), "focus_out_event",
 			   GTK_SIGNAL_FUNC(manage_window_focus_out), NULL);
-
+	gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION(filesel)->dir_list), "select_row",
+            (GtkSignalFunc) filesel_dir_button,
+            (gpointer) filesel);
 	gtk_window_set_modal(GTK_WINDOW(filesel), TRUE);
 }
 
@@ -133,3 +147,27 @@
 	if (event && event->keyval == GDK_Escape)
 		filesel_cancel_cb(NULL, NULL);
 }
+
+static void filesel_dir_button (GtkWidget *widget,
+                gint row,
+                gint column,
+                GdkEventButton *bevent,
+                gpointer user_data)
+{
+  GtkFileSelection *fs = NULL;
+  gchar *filename, *temp = NULL;
+
+  g_return_if_fail (GTK_IS_CLIST (widget));
+
+  fs = GTK_FILE_SELECTION (user_data);
+  g_return_if_fail (fs != NULL);
+  g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
+
+  gtk_clist_get_text (GTK_CLIST (fs->dir_list), row, 0, &temp);
+  filename = g_strdup (temp);
+
+  if (filesel_file != NULL)
+    gtk_file_selection_set_filename(GTK_FILE_SELECTION(fs), filesel_file);
+
+}
+


---
Tom Mishima <tmishima@xxxxxxxxxx>


[前][次][番号順一覧][スレッド一覧]

      1178 2001-11-18 07:05 [shohta@xxxxxxxxxx   ] Sylpheed のカスタマイズについて         
      1179 2001-11-18 22:05 ┗[zero@xxxxxxxxxx     ]                                       
      1185 2001-11-19 19:05  ┗[shohta@xxxxxxxxxx   ]                                     
      1186 2001-11-19 19:30   ┣[niijima@xxxxxxxxxx  ]                                   
   @  1187 2001-11-19 22:16   ┣[munesato@xxxxxxxxxx ]                                   
      1189 2001-11-20 03:50   ┃┗[shohta@xxxxxxxxxx   ]                                 
      1190 2001-11-20 05:18   ┃ ┣[mizuno_yuta@xxxxxxxx]                               
      1192 2001-11-20 09:50   ┃ ┃┣[munesato@xxxxxxxxxx ]                             
      1195 2001-11-21 02:08   ┃ ┃┗[shohta@xxxxxxxxxx   ]                             
      1206 2001-11-21 14:14   ┃ ┃ ┣[neko@xxxxxxxxxx     ] X-Face ( Re: Sylpheed のカスタマイズについて )
      1214 2001-11-21 23:16   ┃ ┃ ┃┣[shohta@xxxxxxxxxx   ]                         
      1223 2001-11-23 09:37   ┃ ┃ ┃┗[shohta@xxxxxxxxxx   ]                         
      1224 2001-11-23 14:59   ┃ ┃ ┃ ┗[aleut@xxxxxxxxxx    ]                       
      1225 2001-11-23 16:06   ┃ ┃ ┃  ┗[shohta@xxxxxxxxxx   ]                     
      1211 2001-11-21 18:57   ┃ ┃ ┗[mizuno_yuta@xxxxxxxx] Re: Sylpheed のカスタマイズについて ( カラー・カスタマイズ)
      1221 2001-11-22 18:35   ┃ ┃  ┗[shohta@xxxxxxxxxx   ] Re: Sylpheed のカスタマイズについて
      1227 2001-11-23 22:33   ┃ ┃   ┗[shohta@xxxxxxxxxx   ] Re: Sylpheed のカスタマイズについて (  カラー・カスタマイズ )
      1191 2001-11-20 09:00   ┃ ┗[aleut@xxxxxxxxxx    ]                               
      1193 2001-11-20 15:52   ┃  ┗[hiramatu@xxxxxxxxxx ]                             
      1194 2001-11-20 22:21   ┃   ┣[aleut@xxxxxxxxxx    ]                           
      1199 2001-11-21 10:57   ┃   ┗[yamamoto@xxxxxxxxxx ]                           
      1203 2001-11-21 12:56   ┃    ┣[hayase@xxxxxxxxxx   ]                         
      1204 2001-11-21 13:08   ┃    ┣[hiramatu@xxxxxxxxxx ]                         
      1209 2001-11-21 17:04   ┃    ┗[aleut@xxxxxxxxxx    ]                         
      1210 2001-11-21 18:47   ┃     ┣[hiramatu@xxxxxxxxxx ]                       
      1213 2001-11-21 20:50   ┃     ┃┗[yoichi@xxxxxxxxxx   ]                     
      1215 2001-11-22 01:10   ┃     ┃ ┗[zero@xxxxxxxxxx     ]                   
      1226 2001-11-23 19:58   ┃     ┃  ┗[zero@xxxxxxxxxx     ]                 
      1261 2001-11-26 22:55   ┃     ┃   ┗[aleut@xxxxxxxxxx    ]               
->    1212 2001-11-21 19:26   ┃     ┗[tmishima@xxxxxxxxxx ]                       
      1216 2001-11-22 02:04   ┃      ┗[aleut@xxxxxxxxxx    ]                     
      1188 2001-11-19 22:31   ┗[zero@xxxxxxxxxx     ]