# Signal's value depend on dialog window

**URL:** <https://discourse.julialang.org/t/signals-value-depend-on-dialog-window/3927>\
**Category:** General Usage\
**Tags:** question\
**Created:** [May 25, 2017, 3:48pm UTC](https://discourse.julialang.org/t/signals-value-depend-on-dialog-window/3927 "2017-05-25T15:48:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [May 25, 2017, 3:48pm UTC](https://discourse.julialang.org/t/signals-value-depend-on-dialog-window/3927/1 "2017-05-25T15:48:12Z")

</div>

I’m using `Gtk` and `GtkReactive`  
I want to make the value of a `Signal` depend on input from a newly spawned window.  
How do I make a `Signal` open a dialog-window (a new window with some widgets in it) and have said `Signal`’s value depend on the dialog’s input (from the user)?  
I don’t know how to get the signal to update from the input from the dialog window. The newly opened window needs to return the value of the `Signal` that spawned it. But the value wouldn’t be composed before the user inputs all their choices (in the newly opened windows’ widgets). So the `Signal` needs to wait on the input from the window, or it needs to update to each of the changes made by the window, not sure…  
Any minimal example would be very helpful, thanks!

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [May 25, 2017, 8:00pm UTC](https://discourse.julialang.org/t/signals-value-depend-on-dialog-window/3927/2 "2017-05-25T20:00:39Z")

</div>

Found it!  
A widget updates a Signal that calls on a function that creates a window filled with other widgets. That window `return`s a Signal to the Signal that spawned the window. Then you just need to `flatten` that Signal, and you’re done!
