* Fixes NB#97221, fixes a crash while creating new folders in move to window
pmo-trunk-r7071
+
+gint
+find_folder_window (gconstpointer a,
+ gconstpointer b)
+{
+ return (MODEST_IS_FOLDER_WINDOW (a)) ? 0 : 1;
+}
+
+ModestWindow *
+modest_hildon2_window_mgr_get_folder_window (ModestHildon2WindowMgr *self)
+{
+ ModestHildon2WindowMgrPrivate *priv;
+ GList *window;
+
+ g_return_val_if_fail (MODEST_IS_HILDON2_WINDOW_MGR (self), NULL);
+
+ priv = MODEST_HILDON2_WINDOW_MGR_GET_PRIVATE (self);
+
+ window = g_list_find_custom (priv->window_list,
+ NULL,
+ find_folder_window);
+
+ return (window != NULL) ? MODEST_WINDOW (window->data) : NULL;
+}
void modest_hildon2_window_mgr_set_account_store (ModestHildon2WindowMgr *self,
TnyAccountStore *acc_store);
void modest_hildon2_window_mgr_set_account_store (ModestHildon2WindowMgr *self,
TnyAccountStore *acc_store);
+ModestWindow *modest_hildon2_window_mgr_get_folder_window (ModestHildon2WindowMgr *self);
+
G_END_DECLS
#endif /* __MODEST_HILDON2_WINDOW_MGR_H__ */
G_END_DECLS
#endif /* __MODEST_HILDON2_WINDOW_MGR_H__ */
gint result;
GtkSizeGroup *sizegroup;
ModestFolderView *folder_view;
gint result;
GtkSizeGroup *sizegroup;
ModestFolderView *folder_view;
+ ModestWindow *folder_window;
+ ModestHildon2WindowMgr *window_mgr;
- g_return_val_if_fail (MODEST_IS_FOLDER_WINDOW (parent_window), GTK_RESPONSE_NONE);
+ window_mgr = (ModestHildon2WindowMgr *) modest_runtime_get_window_mgr ();
+ folder_window = modest_hildon2_window_mgr_get_folder_window (window_mgr);
+ g_return_val_if_fail (MODEST_IS_FOLDER_WINDOW (folder_window), GTK_RESPONSE_NONE);
- folder_view = modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (parent_window));
+ folder_view = modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (folder_window));
/* Ask the user for the folder name */
dialog = gtk_dialog_new_with_buttons (dialog_title,
/* Ask the user for the folder name */
dialog = gtk_dialog_new_with_buttons (dialog_title,
modest_window_mgr_set_modal (modest_runtime_get_window_mgr (),
GTK_WINDOW (dialog), parent_window);
gtk_widget_show_all (GTK_WIDGET(dialog));
modest_window_mgr_set_modal (modest_runtime_get_window_mgr (),
GTK_WINDOW (dialog), parent_window);
gtk_widget_show_all (GTK_WIDGET(dialog));
result = gtk_dialog_run (GTK_DIALOG(dialog));
if (result == GTK_RESPONSE_ACCEPT) {
if (show_name)
result = gtk_dialog_run (GTK_DIALOG(dialog));
if (result == GTK_RESPONSE_ACCEPT) {
if (show_name)
#else
parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
#endif
#else
parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
#endif
if (parent_folder) {
/* The parent folder will be freed in the callback */
if (parent_folder) {
/* The parent folder will be freed in the callback */
- modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window),
+ modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window),
- create_folder_performer,
+ create_folder_performer,
-#ifdef MODEST_TOOLKIT_HILDON2
- g_object_unref (parent_folder);
-#endif
modest_ui_actions_on_new_folder (GtkAction *action, ModestWindow *window)
{
modest_ui_actions_on_new_folder (GtkAction *action, ModestWindow *window)
{
g_return_if_fail (MODEST_IS_WINDOW(window));
if (MODEST_IS_MAIN_WINDOW (window)) {
g_return_if_fail (MODEST_IS_WINDOW(window));
if (MODEST_IS_MAIN_WINDOW (window)) {
TnyFolderStore *dst_folder;
case MODEST_GTK_RESPONSE_NEW_FOLDER:
TnyFolderStore *dst_folder;
case MODEST_GTK_RESPONSE_NEW_FOLDER:
- modest_ui_actions_create_folder (GTK_WIDGET (dialog), folder_view);
+ modest_ui_actions_create_folder (GTK_WIDGET (parent_win), folder_view);
return;
case GTK_RESPONSE_NONE:
case GTK_RESPONSE_CANCEL:
return;
case GTK_RESPONSE_NONE:
case GTK_RESPONSE_CANCEL: