PluginClientThread::~PluginClientThread()
{
-//printf("PluginClientThread::~PluginClientThread %p %d\n", this, __LINE__);
join();
+//printf("PluginClientThread::~PluginClientThread %p %d\n", this, __LINE__);
+ delete window; window = 0;
//printf("PluginClientThread::~PluginClientThread %p %d\n", this, __LINE__);
delete init_complete;
}
int result = 0;
if(client->window_x < 0) client->window_x = info.get_abs_cursor_x();
if(client->window_y < 0) client->window_y = info.get_abs_cursor_y();
- window = client->new_window();
+ if(!window)
+ window = client->new_window();
- if(window)
- {
+ if(window) {
window->lock_window("PluginClientThread::run");
window->create_objects();
window->unlock_window();
//printf("PluginClientThread::run %p %d\n", this, __LINE__);
window->hide_window(1);
window->unlock_window();
- delete window; window = 0;
// Can't save defaults in the destructor because it's not called immediately
// after closing.
/* if(client->defaults) */ client->save_defaults_xml();
using_defaults = 1;
KeyFrame temp_keyframe;
-
save_data(&temp_keyframe);
- FILE *fd = fopen(path, "w");
- if(fd)
- {
- fprintf(fd, "%d\n%d\n", window_x, window_y);
- if(!fwrite(temp_keyframe.get_data(), strlen(temp_keyframe.get_data()), 1, fd))
- {
+
+ const char *data = temp_keyframe.get_data();
+ int len = strlen(data);
+ FILE *fp = fopen(path, "w");
+
+ if( fp ) {
+ fprintf(fp, "%d\n%d\n", window_x, window_y);
+ if( len > 0 && !fwrite(data, len, 1, fp) ) {
fprintf(stderr, "PluginClient::save_defaults_xml %d \"%s\" %d bytes: %s\n",
- __LINE__,
- path,
- (int)strlen(temp_keyframe.get_data()),
- strerror(errno));
+ __LINE__, path, len, strerror(errno));
}
-
- fclose(fd);
+ fclose(fp);
}
+
using_defaults = 0;
}
return server->get_gui_status();
}
-int PluginClient::start_plugin()
-{
- printf(_("No processing defined for this plugin.\n"));
- return 0;
-}
-
// close event from client side
void PluginClient::client_side_close()
{